我正在尝试对以下数组进行排序。
数组
$fruits = array(
'mango',
'mango red',
'mango yellow',
'orange',
'banana',
'apple',
'apple red',
'apple green',
);
我做了什么:
$data = array_flip( $fruits ); // flip array
$data = array_fill_keys( array_keys( array_flip( $data ) ), 'array(),' ); // fill array value: "array(),"
print_r( $data );
我想要这个结果:
$fruits = array(
'mango' => array(
'red' => array(),
'yellow' => array(),
),
'orange' => array(),
'banana' => array(),
'apple' => array(
'red' => array(),
'green' => array(),
),
);
有人知道怎么做吗?
$result = [];
foreach ($fruits as $fruit) {
$parts = explode(' ', $fruit);
if (count($parts) == 1) {
$result[$fruit] = [];
} elseif (isset($result[$parts[0]])) {
$result[$parts[0]][$parts[1]] = [];
}
}
print_r($result);