cakephp hash extract code example

Example 1: Hash::extract

// input
$data = Array(
    [0] => Array (
            [Product] => Array (
                    [id] => 5
                    [product_number] => RT001C
                ))
    [1] => Array (
            [Product] => Array  (
                    [id] => 7
                    [product_number] => RC001C 
                ))
);

$data = Hash::extract($data, '{n}.Product');
// => output
$data = Array(
  	[0]	=> Array (
      	[id] => 5
      	[product_number] => RT001C
    )
    [1] => Array (
     	[id] => 7
      	[product_number] => RC001C 
    )
);

Example 2: cakephp extract array

According to the documentation: "Tokens are composed of two groups. Expressions, are used to traverse the array data, while matchers are used to qualify elements.".

{n}[rating>-1] is considered one token. 
{n} is the expression which filters the array keys, in this case the key must be numeric. 
[rating>-1] is the matcher which filters the array elements, in this case the element must be an array that contains a key named rating and an associated value that is greater than -1. 
Once you have the array element then you can get the rating.

$ratings = array(
  'Rating' => array(
    array(
      'id' => 4,
      'rating' => -1
    ),
    array(
      'id' => 14,
      'rating' => 9.7
    ),
    array(
      'id' => 26,
      'rating' => 9.55
    )
  )
);
print_r( Hash::extract($ratings, 'Rating.{n}[rating>-1].rating') );

Results in:

Array ( [0] => 9.7 [1] => 9.55 )

Tags:

Php Example