簡體   English   中英

在 PHP 數組 for-each 循環中,如何執行非冗余循環數據

[英]In a PHP array for-each loop, how to execute not redundant loop data

我正在嘗試在 for each 循環內循環與數組關聯的數組字符串。 問題是冗余數據顯示。

這是我在數組中的代碼數據:

  $attr_xyz = array(
            

            'child_id'    => array('id_a','id_b','id_c'),
            'child_class' => array('class_a','class_b','class_c'),
            'labels'      => array('label_a','label_b','label_c'),

   );

我正在做的是:

$get_attr_label_id = [];
   
foreach ($attr_xyz['child_id'] as $child_id) 
 {  
      
       $get_attr_label_id[] = $child_id;
 }
 
$get_child_id = implode(" ", $get_attr_label_id);
$get_attr_label_ = [];
   
foreach ($attr_xyz['labels'] as $labels) 
 {  
      
       $get_attr_label_[] = $labels;
 }
 
$get_child_labels = implode(" ", $get_attr_label_);

期待 output:

<div id="id_a">
<lable>$label_a</lable>
</div>

<div id="id_b">
<lable>$label_a</lable>
</div>

<div id="id_c">
<lable>$label_a</lable>
</div>

但發生的是:

<lable>$label_a</lable>
<div id="id_a" id="id_b" id="id_c"></div>
<div id="id_a" id="id_b" id="id_c"></div>
<div id="id_a" id="id_b" id="id_c"></div>

<lable>$label_b</lable>
<div id="id_a" id="id_b" id="id_c"></div>
<div id="id_a" id="id_b" id="id_c"></div>
<div id="id_a" id="id_b" id="id_c"></div>

<lable>$label_c</lable>
<div id="id_a" id="id_b" id="id_c"></div>
<div id="id_a" id="id_b" id="id_c"></div>
<div id="id_a" id="id_b" id="id_c"></div>

沒有理由遍歷數組並創建新的 arrays。 原始數組已經具有良好的結構。

這應該這樣做:

$attr_xyz = [
    'child_id'    => array('id_a','id_b','id_c'),
    'child_class' => array('class_a','class_b','class_c'),
    'labels'      => array('label_a','label_b','label_c'),
];

foreach ($attr_xyz['child_id'] as $index => $id) {
?>
    <div id="<?= $id ?>">
        <lable><?= $attr_xyz['labels'][$index] ?></lable>
    </div>

<?php
}

這是一個演示

由於所有子 arrays 都是有序的,我們只需要使用foreach遍歷其中一個。 這也為我們提供了在其他子 arrays 中獲取相關值時使用的數組索引。

嘗試這個

$attr_xyz = array(
        'child_id'    => array('id_a','id_b','id_c'),
        'child_class' => array('class_a','class_b','class_c'),
        'labels'      => array('label_a','label_b','label_c'),
    );
    $get_attr_label_id = [];

for ($i=0; $i < 3; $i++) { 
    $get_attr_label_id[] = $attr_xyz['child_id'][$i] . " " . $attr_xyz['labels'][$i];

}
$get_attr = implode(" ", $get_attr_label_id);

嘗試這個

<?php
$cntr = count($attr_xyz['child_id']) - 1;
for($x = 0; $x <= $cntr; $x++)
{
$child_id = $attr_xyz['child_id'][$x];
$label = $attr_xyz['labels'][$x];
//Print your html here
echo "<div id=\"$child_id\">\n
<label>$label</label>\n
</div>\n\n";
}
?>

暫無
暫無

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

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