Разделить массив массивов на основе значений ключей - PHP - PullRequest
0 голосов
/ 05 февраля 2019

Я получаю массив из Post после того, как пользователь отправит форму.Данные возвращаются мне в виде массива, но внутри него есть еще 2 массива и несколько элементов, принадлежащих родительскому массиву.Как я могу извлечь массивы, которые находятся внутри родительского массива (на основе их имен), и добавить оставшиеся элементы в новый массив.

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'

То, что я сделал до сих пор, - это получить данные какв целом, делая это в моем контроллере:

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

Но в родительском массиве остались данные, как мне их получить?

1 Ответ

0 голосов
/ 05 февраля 2019

Используйте 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']);
...