从现有阵列(多阵列)重现新阵列
如果我有一个名为参数的数组:
$arr = Array
(
[0] => Array(0,Array(0=>'abc'))
[1] => Array(0,Array(1=>'def'))
[2] => Array(1,Array(0=>'ghi'))
)
想要一个传递$ arr的函数,比如这个
function TODO($arr){
//
return $new_array;
}
该功能将返回 结果将重现先前数组中的元素,并且将得到结果(返回):
Array
(
[0] => Array
(
[0] => 'abc'
[1] => 'def'
)
[1] => Array
(
[0] => 'ghi'
)
)
有人知道怎么做吗?请
感谢
答案 0 :(得分:1)
我不是百分百肯定我已经明白你想要什么,但如果我有,这应该有用:
<?php
$arr = Array(
0 => Array(0, Array(0=>'abc')),
1 => Array(0, Array(1=>'def')),
2 => Array(1, Array(0=>'ghi'))
);
function transformArray($array) {
$newArray = array();
foreach ($array as $value) {
if (!isset($newArray[$value[0]])) {
$newArray[$value[0]] = array();
}
$newArray[$value[0]][] = array_pop($value[1]);
}
return $newArray;
}
$outputArray = transformArray($arr);
echo '<pre>' . print_r($outputArray, true) . '</pre>';
?>
答案 1 :(得分:0)
我不这么认为。如果您可以控制这些文本数组如何转换为文本,则应使用serialize()
和unserialize()
。最快捷,最简单的方法。
如果你仍然需要从你提供的字符串创建数组,你可能需要构建一个非常复杂的函数来做到这一点。