数组中的foreach循环

问题描述 投票:0回答:2

我有一些关于

foreach array
的问题。

如果我有一些数据:

"'a1','a2'","'b1','b2'","'c1','c2'"
我厌倦了获取
a1,b1,c1

当我测试下面的代码时,

$aa = array("'a1','a2'","'b1','b2'","'c1','c2'");
foreach($aa as $bb){
    $cc = array($bb);//var_dump($cc);  (1) { [0]=> string(9) "'a1','a2'" }...
    foreach($cc as $dd){
        echo $dd.'<br />';
        break;
    }
}

它将输出:

'a1','a2'
'b1','b2'
'c1','c2'

错了

$cc = array($bb)
...有什么问题吗?谢谢。

php loops foreach
2个回答
3
投票

您有一层数组,而不是两层。元素只是 php 的字符串,而不是数组。这就是为什么你的代码不起作用。

$cc = array($bb)
字符串替换为如下所示:

$cc = explode(',', $bb);
foreach($cc as $dd){
    echo trim($dd, "'").'<br />';
    break;
}

0
投票

迭代单引号包裹的 csv 字符串,并在解析后返回每个字符串的第一个值。

代码:(演示

$aa = [
    "'a1','a2'",
    "'b1','b2'",
    "'c1','c2'"
];
var_export(
    array_map(
        fn($csv) => str_getcsv($csv, ',', "'")[0],
        $aa
    )
);

如果您需要单独的分隔字符串,只需在上面的结果数组上调用

implode()

© www.soinside.com 2019 - 2024. All rights reserved.