Как преобразовать массив с помощью класса CakePHP HASH? ⇐ Php
-
Anonymous
Как преобразовать массив с помощью класса CakePHP HASH?
I am working on CakePHP. Recently I started using the CakePHP Hash Class. I want to convert an array format using the Hash Class functions. I have the following array :
$arr = array( 0 => array( 'key1' => array( 'id' => 6 'type' => insert 'field_id' => 2 'activity' => table ), 'key2' => array( 0 => array( 'id' => 'key1_id' => 6 ) 1 => array( 'id' => 'key1_id' => 6 ) ) ) 1 => array( 'key1' => array( 'id' => 5 'type' => edit 'field_id' => 3 'activity' => list ), 'key2' => array( 0 => array( 'id' => 'key1_id' => 5 ) 1 => array( 'id' => 'key1_id' => 5 ) ) ) 2 => array( 'key1' => array( 'id' => 4 'type' => insert 'field_id' => 2 'activity' => table ), 'key2' => array( 0 => array( 'id' => 'key1_id' => 4 ) ) ) 3 => array( 'key1' => array( 'id' => 3 'type' => insert 'field_id' => 3 'activity' => list ), 'key2' => array( 0 => array( 'id' => 'key1_id' => 3 ) ) ) 4 => array( 'key1' => array( 'id' => 2 'type' => edit 'field_id' => 1 'activity' => list ), 'key2' => array( 0 => array( 'id' => 'key1_id' => 2 ) ) ) 5 => array( 'key1' => array( 'id' => 1 'type' => edit 'field_id' => 3 'activity' => list ), 'key2' => array( 0 => array( 'id' => 'key1_id' => 1 ) ) ) ); The condition is that any key1 having type, field_id and activity exactly will result in all the key2 being merged together and the key1 that occurs later in the list gets unset. I want to convert it into the following format :
$arr = array( 0 => array( 'key1' => array( 'id' => 6 'type' => insert 'field_id' => 2 'activity' => table ), 'key2' => array( 0 => array( 'id' => 'key1_id' => 6 ) 1 => array( 'id' => 'key1_id' => 6 ) 2 => array( 'id' => 'key1_id' => 4 ) ) ) 1 => array( 'key1' => array( 'id' => 5 'type' => edit 'field_id' => 3 'activity' => list ), 'key2' => array( 0 => array( 'id' => 'key1_id' => 5 ) 1 => array( 'id' => 'key1_id' => 5 ) 2 => array( 'id' => 'key1_id' => 1 ) ) ) 3 => array( 'key1' => array( 'id' => 3 'type' => insert 'field_id' => 3 'activity' => list ), 'key2' => array( 0 => array( 'id' => 'key1_id' => 3 ) ) ) 4 => array( 'key1' => array( 'id' => 2 'type' => edit 'field_id' => 1 'activity' => list ), 'key2' => array( 0 => array( 'id' => 'key1_id' => 2 ) ) ) ); If you have a look key2 value for key '2' is merged with key '0' and '2' is unset. The missing key values should basically be unset. I want to know the best possible way in which I can attain this format for the array.
Источник: https://stackoverflow.com/questions/290 ... hash-class
I am working on CakePHP. Recently I started using the CakePHP Hash Class. I want to convert an array format using the Hash Class functions. I have the following array :
$arr = array( 0 => array( 'key1' => array( 'id' => 6 'type' => insert 'field_id' => 2 'activity' => table ), 'key2' => array( 0 => array( 'id' => 'key1_id' => 6 ) 1 => array( 'id' => 'key1_id' => 6 ) ) ) 1 => array( 'key1' => array( 'id' => 5 'type' => edit 'field_id' => 3 'activity' => list ), 'key2' => array( 0 => array( 'id' => 'key1_id' => 5 ) 1 => array( 'id' => 'key1_id' => 5 ) ) ) 2 => array( 'key1' => array( 'id' => 4 'type' => insert 'field_id' => 2 'activity' => table ), 'key2' => array( 0 => array( 'id' => 'key1_id' => 4 ) ) ) 3 => array( 'key1' => array( 'id' => 3 'type' => insert 'field_id' => 3 'activity' => list ), 'key2' => array( 0 => array( 'id' => 'key1_id' => 3 ) ) ) 4 => array( 'key1' => array( 'id' => 2 'type' => edit 'field_id' => 1 'activity' => list ), 'key2' => array( 0 => array( 'id' => 'key1_id' => 2 ) ) ) 5 => array( 'key1' => array( 'id' => 1 'type' => edit 'field_id' => 3 'activity' => list ), 'key2' => array( 0 => array( 'id' => 'key1_id' => 1 ) ) ) ); The condition is that any key1 having type, field_id and activity exactly will result in all the key2 being merged together and the key1 that occurs later in the list gets unset. I want to convert it into the following format :
$arr = array( 0 => array( 'key1' => array( 'id' => 6 'type' => insert 'field_id' => 2 'activity' => table ), 'key2' => array( 0 => array( 'id' => 'key1_id' => 6 ) 1 => array( 'id' => 'key1_id' => 6 ) 2 => array( 'id' => 'key1_id' => 4 ) ) ) 1 => array( 'key1' => array( 'id' => 5 'type' => edit 'field_id' => 3 'activity' => list ), 'key2' => array( 0 => array( 'id' => 'key1_id' => 5 ) 1 => array( 'id' => 'key1_id' => 5 ) 2 => array( 'id' => 'key1_id' => 1 ) ) ) 3 => array( 'key1' => array( 'id' => 3 'type' => insert 'field_id' => 3 'activity' => list ), 'key2' => array( 0 => array( 'id' => 'key1_id' => 3 ) ) ) 4 => array( 'key1' => array( 'id' => 2 'type' => edit 'field_id' => 1 'activity' => list ), 'key2' => array( 0 => array( 'id' => 'key1_id' => 2 ) ) ) ); If you have a look key2 value for key '2' is merged with key '0' and '2' is unset. The missing key values should basically be unset. I want to know the best possible way in which I can attain this format for the array.
Источник: https://stackoverflow.com/questions/290 ... hash-class
Мобильная версия