我有一个这样的数组:
array(
(int) 0 => (int) 1,
(int) 1 => (int) 3,
(int) 2 => (int) 12,
(int) 3 => (int) 5,
(int) 4 => (int) 8,
(int) 5 => (int) 10,
(int) 6 => (int) 15
)
将键与子键合并而不考虑值的最佳方法是什么?得到类似的东西?
df
答案 0 :(得分:0)
$newArray = [];
$arrays = array(
(int) 1 => array(
(int) 3 => 'value',
(int) 12 => 'value'
),
(int) 5 => array(
(int) 8 => 'value',
(int) 10 => 'value',
(int) 15 => 'value'
)
)
foreach($arrays as $key => $array) {
$newArray[] = $key;
foreach($array as $key => $item) {
$newArray[] = $key;
}
}
答案 1 :(得分:0)
您可以将array_walk_recursive()用于php 5及更高版本。
//$oldArray = your array
$newArray = [];
function build_array($item,$key){
global $newArray;
$newArray[] = $key;
}
array_walk_recursive($oldArray,'build_array');
$newArray = array_merge(array_keys($oldArray),$newArray); //needed for the first keys (1,5) as Jory Geerts correctly pointed out.
答案 2 :(得分:0)
使用array_keys
和array_merge
函数的简短解决方案:
$keys = [];
foreach ($arr as $k => $v) { // $arr is your initial array
$keys[] = $k;
if (is_array($v)) $keys = array_merge($keys, array_keys($v));
}
print_r($keys);
输出:
Array
(
[0] => 1
[1] => 3
[2] => 12
[3] => 5
[4] => 8
[5] => 10
[6] => 15
)