简体   繁体   中英

Split an Array of Arrays based on key values - PHP

I am getting an array from Post after the user submits a form. The data comes back to me as an array, but inside it there are 2 more arrays and a few elements that belong to the parent array.
How can I extract the arrays that are inside the parent array (based on their names) and add the remaining elements in a new array.

array (size=x)
       'parent_array_element1' => string 'value1'
       'parent_array_element2' => string 'value2' 
       'parent_array_element3' => string 'value3' 
       'parent_array_element4' => string 'value4'
       'parent_array_element5' => string 'value5'
       'parent_array_element6' => string 'value6' 
       'parent_array_element7' => string 'value7'
       'parent_array_element8' => string 'value8'
       'parent_array_element9' => string 'value9'
       'parent_array_element10' => string 'value10' 
   'internalArray1' => 
      array 
        'internalArray1_element1' => string 'value1'
        'internalArray1_element2' => string 'value2'
        'internalArray1_element3' => string 'value3'
        'internalArray1_element4' => string 'value4' 
        'internalArray1_element5' => string 'value5' 
        'internalArray1_element6' => string 'value6'
        'internalArray1_element7' => string 'value7'
    'internalArray2' => 
      array
        'internalArray2_element1' => string 'value1'
        'internalArray2_element2' => string 'value2'
        'internalArray2_element3' => string 'value3'
        'internalArray2_element4' => string 'value4'
        'internalArray2_element5' => string 'value5'

What I 've done so far is to get the data as a whole by doing this in my controller:

//Gets the parent array (Including nested arrays)
$data = $this->params()->fromPost(); 
//Gets the internaArray1
$data = $this->params()->fromPost('internalArray1'); 
//Gets the internaArray2
$data = $this->params()->fromPost('internalArray2');

But there is data left in the parent array, how do I get that?

Use unset to remove nested arrays from parent

//Gets the parent array (Including nested arrays)
$data = $this->params()->fromPost();

//Gets the internalArray1
$internalArray1 = $data['internalArray1'];
//Remove internalArray1 from parent
unset($data['internalArray1']);

//Gets the internalArray2
$internalArray2 = $data['internalArray2'];
//Remove internalArray2 from parent
unset($data['internalArray2']);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM