![](/img/trans.png)
[英]How to convert delimited string into multi-dimensional array with associative keys?
[英]How to remove the keys from a multi-dimensional associative array?
我有一個具有以下格式的關聯數組:
array (
'Shopping and fashion' =>
array (
'childData' =>
array (
'Beauty' =>
array (
'childData' =>
array (
'Cosmetics' =>
array (
'id' => '6002839660079',
'name' => 'Cosmetics',
'parentName' => 'Beauty',
),
'Tattoos' =>
array (
'id' => '6003025268985',
'name' => 'Tattoos',
'parentName' => 'Beauty',
),),))))
我想從數組中刪除鍵。 為此,我正在使用:
array_values($my_data)
但是,這只適用於最頂層的數組,在本例中為“購物和時尚”。 它將其轉換為索引 0。我如何對索引內的每個數組也執行相同的操作?
預期產出:
array (
0 =>
array (
'childData' =>
array (
0 =>
array (
'childData' =>
array (
0 =>
array (
'id' => '6002839660079',
'name' => 'Cosmetics',
'parentName' => 'Beauty',
),
1 =>
array (
'id' => '6003025268985',
'name' => 'Tattoos',
'parentName' => 'Beauty',
),
),
'name' => 'Beauty',
'id' => '6002867432822',
'parentName' => 'Shopping and fashion',
),)))
我擁有的數組在父級別上有許多不同的數組,並且它們內部有更多的數組,因此使用每個數組都會帶來問題,因為“childData”的數量,即父數組中的子數組是變化的。
遞歸可能嗎?
我不知道內置函數,但也許這個函數對你有幫助?
function array_values_recursive( $array ) {
$newArray = [];
foreach ( $array as $key => $value ) {
if ( is_array( $value ) ) {
$newArray[] = array_values_recursive( $value );
} else {
$newArray[$key] = $value;
}
}
return $newArray;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.