当多次使用相同的键时,如何回显特定的数组键?

当多次使用相同的键时,如何回显特定的数组键?

问题描述:

I have an array I am trying to iterate through with PHP and get a value out of. All my keys for 'custom_attributes' are the same though.

Array
(
    [items] => Array
        (
            [0] => Array
                (
                    [sku] => SCB20
                    [custom_attributes] => Array
                        (
                            [0] => Array
                                (
                                    [attribute_code] => ages
                                    [value] => 17
                                )

                            [1] => Array
                                (
                                    [attribute_code] => description
                                    [value] => description data
                                )

                            [2] => Array
                                (
                                    [attribute_code] => image
                                    [value] => cl2eojpu9.jpg
                                )
                        )
                )
        )
)

Let's say for instance I only want to echo out the value of value where the attribute_code value equals ages. How do I do that?

You can loop over the array like bellow:

    foreach ($array['items'][0]['custom_attributes'] as $key => $item) {
      if($item['attribute_code'] == 'ages') echo $item['value']
    }

You can use array_walk_recursive

 $searchCode  = 'ages';
 $attributeValue = '';
 $flag = false;
 array_walk_recursive($a, function($item, $key, &$flag) use ($searchCode,&$attributeValue){
  ($key == 'attribute_code' && $item == $searchCode) ? ($flag = true) : '';
  !empty($flag) ? ($attributeValue = $item) : '';
 }, $flag);
 echo $attributeValue;

Working example : https://3v4l.org/erlZD