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