簡體   English   中英

PHP:在循環中使用多個數組

[英]PHP: using more than one array in a loop

我試圖在@foreach中使用多個數組。 看完SO之后,我發現這不是@foreach的用途,因此在以下情況下應該使用什么? 這是偽造的數據,我將其用於模擬網站,然后再將其交給后端開發人員。 我正在使用Laravel,並且是PHP的初學者,所以請您放心。

排列

$messageData['conversation_sender'][0][0] = 'Clint Smith';
$messageData['conversation_sender'][0][1] = 'Tom Corwin';
$messageData['conversation_sender'][0][2] = 'John Michaels';
$messageData['conversation_sender'][0][3] = 'Jane Winnipeg';
$messageData['conversation_class'][0][0] = 'owner-comment';
$messageData['conversation_class'][0][1] = 'friend-comment';
$messageData['conversation_class'][0][2] = 'friend-comment';
$messageData['conversation_class'][0][3] = 'friend-comment';
$messageData['conversation_message'][0][0] = 'Hello!';
$messageData['conversation_message'][0][1] = 'Can\t wait to catch up';
$messageData['conversation_message'][0][2] = 'Whoop, whoop';
$messageData['conversation_message'][0][3] = 'Good times!';
$messageData['conversation_time'][0][0] = '2 minutes ago';
$messageData['conversation_time'][0][1] = '4 minutes ago';
$messageData['conversation_time'][0][2] = '8 minutes ago';
$messageData['conversation_time'][0][3] = '18 minutes ago';

我一直使用的@foreach循環示例,一次僅用於一個數組

@foreach($messageData['conversation_sender'][0] as $value)
    <span class="form-tag">{{ $value }} <i class="fa fa-plus"></i></span> 
@endforeach

我想如何使用它(我知道我在做夢)

@for($messageData['conversation_sender'][0] as $sender, $messageData['conversation_class'][0] as $class, $messageData['conversation_message'][0] as $message, $messageData['conversation_time'][0] as $time)
    <li class="{{ $class }} clearfix">
        <p class="text-left">
          <strong>{{ $sender }}</strong><br>
          {{ $message }}
        </p>
        <span class="message-created text-muted">{{ $time }}</span>
    </li>
@endfor

第一次迭代應打印的示例

<li class="owner-comment clearfix">
    <p class="text-left">
      <strong>Clint Smith</strong><br>
      Hello!
    </p>
    <span class="message-created text-muted">2 minutes ago</span>
</li>

將數組重組為應具有的層次結構。

$messageData[] = array(
   'conversation_sender' => 'Clint Smith',
   'conversation_class' => 'owner-comment',
   'conversation_message' => 'Hello!',
   'conversation_time' => '2 minutes ago'
);
// Repeat for each other message.

現在,您已經擁有了所需的東西,它可以處理數組中可能存在的任何數量的消息:

foreach ($messageData as $message) {
    echo "Sender {$message['conversation_sender']} </br>";
    // etc.
}

對一個數組使用foreach ,在其他數組中使用相同的鍵。

foreach ($messageData['conversation_sender'][0] as $index => $sender) {
    $class = $messageData['conversation_class'][0][$index];
    $time = $messageData['conversation_time'][0][$index];
    $message = $messageData['conversation_time][0][$index];
    // do stuff with those variables
}

但是,更慣用的方式就是gview的答案。

您可以使用foreach循環。

    @foreach($messageData['conversation_sender'][0] as $key=>$sender)
{{--*/ $class=$messageData['conversation_class'][0][$key];
    $message = $messageData['conversation_message'][0][$key];
    $time = $messageData['conversation_time'][0][$key]; /*--}}
    //Your code here
@endforeach

或直接使用php

    foreach($messageData['conversation_sender'][0] as $key=>$sender){
    $class=$messageData['conversation_class'][0][$key];
    $message = $messageData['conversation_message'][0][$key];
    $time = $messageData['conversation_time'][0][$key]; 

    //your code here

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM