多维数组到数组字符串

时间:2017-03-22 17:21:47

标签: php arrays

在我的数组结果下面找到

 Array
    (   
     [0] => Array
            (
                [0] => stdClass Object
                    (
                        [task_id] => 1
                    )

            )

        [1] => Array
            (
                [0] => stdClass Object
                    (
                        [task_id] => 28
                    )

                [1] => stdClass Object
                    (
                        [task_id] => 43
                    )

                [2] => stdClass Object
                    (
                        [task_id] => 44
                    )

            )
    )

我想将task_id存储为字符串,如下所示

Array(
    [0] => 1
    [1] => 28,43, 44
)

我尝试了内爆它不起作用任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:1)

你可以这样做:

foreach ($arr as &$item) {
    $item = implode(',', array_map(function ($i) { return $i->task_id; }, $item));
}

数组的每个项都是一个stdClass实例数组,其属性为task_id。使用array_map我将其更改为整数数组,然后我只需使用implode并将结果影响到当前项目。

答案 1 :(得分:1)

ideone:http://ideone.com/MnUohR

If Not Intersect(ActiveCell, [myTable]) Is Nothing Then

答案 2 :(得分:0)

或者,你可以做两个foreach循环,如:

foreach ($arr as $k1 => $a1) foreach ($a1 as $a2) $barr[$k1][]=$a2['task_id'];
print_r($barr);

在此处查看一个小演示:http://rextester.com/ACKZ42424
$barr是新数组。

编辑:啊,对不起,我误解了很多细节。只是注意到你想要将元素连接成一个字符串。并且数组包含StdObjects而不是数组......就像一个小练习 - 即使没有人感兴趣 - 这是我的纠正解决方案:

foreach ($arr as &$a1){ $t=null; foreach ($a1 as $a2) $t[]=$a2->task_id;
    $a1=join(',',$t);
}
print_r($arr);

此时转换也已完成"就地" ...
见这里:http://rextester.com/JLO86317