[英]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.