簡體   English   中英

如何從多維關聯數組中刪除鍵?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM