проверить и сравнить значение ассоциативного массива с in_array? - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь с помощью функции in_array проверить, существует ли значение во втором массиве или нет. Я хочу найти 556729685 из следующего массива:

$_SESSION["cart_item"] =

Array
( 
    [cart_item] => Array 
        ( 
            [0] => Array 
                ( 
                    [product_name] => White Sakura Necktie
                    [id] => 11
                    [product_auto_id] => 556729685
                    [quantity] => 2
                    [product_regular_price] => 95
                    [product_sale_price] => 95
                    [product_image] => 556729680Black_Sakura_Necktie.jpg 
                )
            [1] => Array 
                ( 
                    [product_name] => hhhad ba bhdbh
                    [id] => 10
                    [product_auto_id] => 951790801
                    [quantity] => 2
                    [product_regular_price] => 20
                    [product_sale_price] => 
                    [product_image] => 951790801hhhad_ba_bhdbh_.jpg 
                )
        ) 
)

Я использую следующие функции для проверки, но выдает неверный результат:

in_array(556729685, array_keys($_SESSION["cart_item"]));

Я также пробовал этот:

in_array(556729685, array_values($_SESSION["cart_item"]));

Никто не работает, поэтому помогите мне решить эту проблему.

1 Ответ

0 голосов
/ 22 января 2020

Ассоциативный массив состоит из ключа, столбца и значений. Итак, для проверки наличия значения вам необходимо получить ключ массива.

for($i=0;$i<count($_SESSION["cart_item"]);$i++)
{
     if( in_array( 556729685 ,$_SESSION["cart_item"][$i] ) )
    {
      echo "exist in id:".$i.'<br/>';
    }
}
...