提问者:小点点

PHP数组for-each循环帮助执行非冗余循环数据


你好,PHP开发人员/程序员专家,我需要你的帮助,请。。。 我正在尝试循环数组字符串关联的数组内部,对于每一个循环的问题都是冗余数据显示。

下面是数组中的代码数据:

  $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_);

应为:输出:

<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>

请我帮忙,非常感谢您提前! :)


共2个答案

匿名用户

试试这个

<?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";
}
?>

匿名用户

没有理由遍历数组并创建新数组。 原来的数组已经有了很好的结构。

这应该可以做到:

$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 $key => $id) {
?>

    <div id="<?= $id ?>">
        <lable><?= $attr_xyz['labels'][$key] ?></lable>
    </div>

<?php
}

演示https://3v4L.org/6rymt