简体   繁体   English

根据键值拆分数组数组-PHP

[英]Split an Array of Arrays based on key values - PHP

I am getting an array from Post after the user submits a form. 用户提交表单后,我从Post获得了一个数组。 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. 数据以数组的形式返回给我,但是里面有2个以上的数组和一些属于父数组的元素。
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 使用unset从父级删除嵌套数组

//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']);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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