我有一个多维数组,想要打破它...这是数组。
array
(
[0] => array
(
[0] => array
(
[0] => 1
[intsch_id] => 1
)
[1] => array
(
[0] => 2
[intsch_id] => 2
)
)
)
我想把它分解为
array (
[0] => 1
[intsch_id] => 1,
[1] => 2
[intsch_id] => 2
)
这是一个动态查询,因此结果并不总是这么简单。它将具有与上述多维数组相同的结构。
答案 0 :(得分:0)
此函数将展平您的数组结构:
function flatten_array($arr) {
if (!is_array($arr)) return false;
$ret = array();
foreach ($arr as $key => $val) {
if (is_array($val)) {
$ret = array_merge($ret, flatten_array($val));
} else {
$ret[$key] = $value;
}
}
return $ret;
}
答案 1 :(得分:0)
结果数组是否缺少两个逗号?
每个[intsch_id]键前一个?
像这样:
array ( [0] => 1, [intsch_id] => 1, [1] => 2, [intsch_id] => 2)
如果是这样,就不可能有多个具有相同键的数组值,[intsch_id]。
但是,您只想折叠保存此数据的外部数组,这非常简单:
$source_array = array(
array(
array(
"0" => 1,
"intsch_id" => 1
),
array(
"0" => 2,
"intsch_id" => 2
)
)
);
echo '<pre>'; print_r($source_array); echo '</pre>';
$return_array = $source_array[0];
echo '<pre>'; print_r($return_array); echo '</pre>';
答案 2 :(得分:0)
我认为这是最快的方式:
function array_flat(&$ar) {
function flat($item, $key, $res)
{
$res[$key] = $item;
}
$res = array();
array_walk_recursive($ar, 'flat', &$res);
return $res;
}
$sweet = array('a' => 'apple', 'b' => 'banana');
$fruits = array('sweet' => $sweet, 'sour' => 'lemon');
print_r(array_flat($fruits));