我想分离从foreach循环中回显的数组值
<?php foreach($qty as $qty2): ?>
<?php foreach($qty2 as $q): ?>
<?php echo implode(",", $q); ?>
<?php endforeach ?>
<?php endforeach ?>
遇到PHP错误
严重性:警告
消息:implode():传递的参数无效
如果不添加内爆函数,我的值通常会喜欢这个
87 89 78
看起来很混乱所以我想输出
87, 89, 78
或
87 - 89 - 78
或
(87)(89)(78)
这个想法是向用户显示它们与数组
的值不同数组
Array ( [0] => Array ( [qty] => 24 ) [1] => Array ( [qty] => 24 ) [2] => Array ( [qty] => 24 ) )
现在我尝试了这个
<?php foreach($qty as $qty2): ?>
<?php foreach($qty2 as $q): ?>
<?php echo $q . " , " ; ?>
<?php endforeach ?>
<?php endforeach ?>
结果
24 , 24 , 24 ,
最后总是有一个尾随的逗号
任何想法?
答案 0 :(得分:1)
在迭代中不要对每个元素使用1
。
首先收集容器内的所有元素,然后使用implode
。
implode()
如果<?php
$data = array();
foreach($qty as $qty2) {
$data[] = $qty2['qty']; // gather all qty first
}
echo implode(', ', $data); // implode collected elements
?>
可用,您也可以使用它:
array_column
答案 1 :(得分:1)
您还可以使用join()
函数来分隔数组值。在连接中,第一个参数是delimiter
,第二个是数组。
<?php
$qty = array(
0 => array('qty' => 24 ),
1 => array('qty' => 24 ),
2 => array('qty' => 24 )
);
$arr = array();
foreach ($qty as $q) {
$arr[] = $q['qty'];
}
/// used delimiter ','
echo join(',', $arr);
echo "<br>";
/// used delimiter '-'
echo join('-', $arr);
?>
这将输出
24,24,24
24-24-24