Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的数组格式转换_Php_Arrays - Fatal编程技术网

PHP中的数组格式转换

PHP中的数组格式转换,php,arrays,Php,Arrays,我得到了一个如下所示的数组: Array ( [0] => Array ( [id] => 0 ) [1] => Array ( [id] => 0 ) [2] => Array ( [id] => 0 ) [3] => Array ( [id] => 0 ) [4] => Array ( [id] => 0 ) [5] => Array ( [id] => 0 ) [6] => Array ( [id] =>

我得到了一个如下所示的数组:

 Array ( [0] => Array ( [id] => 0 ) [1] => Array ( [id] => 0 ) [2] => Array ( [id] => 0 ) [3] => Array ( [id] => 0 ) [4] => Array ( [id] => 0 ) [5] => Array ( [id] => 0 ) [6] => Array ( [id] => 0 ) [7] => Array ( [id] => 0 ) [8] => Array ( [id] => 0 ) [9] => Array ( [id] => 0 ) [10] => Array ( [id] => 0 ) [11] => Array ( [id] => 4 ) [12] => Array ( [id] => 1 ) [13] => Array ( [id] => 2 ) [14] => Array ( [id] => 0 ) [15] => Array ( [id] => 0 ) [16] => Array ( [id] => 5 ) [17] => Array ( [id] => 1 ) )
我想把它转换成以下格式:

 [0,0,0,0,0,0,0,0,0,0,0,4,1,2,0,0,5,1]
如何使用php实现这种转换


非常感谢您的帮助。

您可以使用
array\u map
array\u walk

array_walk($theArray, function (&$value, $key) { $value = $value['id']; };
print_r($theArray);
使用
数组\u映射

$new = array_map(function ($value) { return $value['id']; }, $theArray);
print_r($new);
使用
数组\u walk

array_walk($theArray, function (&$value, $key) { $value = $value['id']; };
print_r($theArray);
它们之间的主要区别在于
array\u map
生成了一个全新的数组,并且没有将密钥传递给回调函数<另一方面,code>array\u walk通过引用在数组上工作,回调函数也会获取密钥

现在,我还不清楚您是希望重新构造数组(正如我提供的解决方案),还是希望它采用特定的字符串格式,如您提供的
[0,1,2,3,…]
。如果您确实希望它采用字符串格式,那么现在只需对其调用
json\u encode

// note if you used array_map pass the variable that holds the result of the call
// (in my example that would be $new); If you used array_walk then pass the same array
// you supplied as the argument to the call (in my exmaple that would be $theArray)

$arrString = json_encode($theArray);
最简单的方法:(假设您希望它实际输出字符串
[5,6,…,2]

<?php
 $ids=array();
foreach($yourArray as $k=>$v){
    $ids[] = $v['id'];
}
$resultCsv = implode(',', $ids);
$result = '['.$resultCsv.']';
echo $result
?>

您可以处理数组的每个成员,并将当前处理的每个子数组的成员“id”附加到新数组中:

<?php
    // code
    foreach $array as $member {
        $newarray[]=$member["id"];
    }
    // code
?>

PHP>=5.5.0,用于
array\u column()
或使用:


您想使用此命令访问阵列,还是希望输出为此命令?