Я не могу напечатать значение ключа массива, возвращаемого этим запросом:
$user1 = $wpdb->get_results( "select product,checked_by,date(submit_date) from diary_user_form_storage where DATE(submit_date) = CURDATE() ; "); $jsonString = ""; foreach ($user1 as $key => $value) { $productString = stripslashes($value->product); $checked = stripslashes($value->checked_by); $suppliers = stripslashes($value->suppliers); $van_temperature = stripslashes($value->van_temperature); $comments = stripslashes($value->comments); $product = json_decode($productString, true); $checked_by = json_decode($checked , true); $suppliers = json_decode($suppliers , true); $van_temperature = json_decode($van_temperature, true); $comments = json_decode($comments, true); //This code is running for single variable $product But I have to print all //multiple variable here . How can I print multiple variable here foreach ($product as $v){ echo $v['product']; } } ?>
Это результат, который напечатан
[1]=> array(1) { ["product"]=> string(5) "GSSHS" } }
Если я сделал print_r для моего SQL-запроса print_r ($ user1), тогда вывод представляет собой список массивов, который вы можете увидеть.
[1] => stdClass Object ( [store_id] => 2 [user_id] => 7 [unit_data] => [{\"unit_data\":\"10\"}] [suppliers] => [product] => [{\"product\":\"AA\"}] [checked_by] => [{\"checked_by\":\"Rakesh Kushwaha\"}] [temperature_in] => [{\"temperature_in\":\"QWW\"}] [temperature_out] => [time_in] => [{\"time_in\":\"44:44\"}] [time_out] => [van_temperature] => [center_temperature] => [cooling_temperature] => [end_cooling_temperature] => [comments] => [submit_date] => 2017-10-18 22:12:39 [time_holded] => [temperature] => [time_reheated] => [extra_timing] => [image_url] => [category_name] => opening [category] => [{\"category\":\"Frozen\"}] )
Мне нужно только значение этого ключа массива: ["product"]=>"GSSHS"
Вы можете использовать ARRAY_A
$user1 = $wpdb->get_results( "select product,checked_by,date(submit_date) from diary_user_form_storage where DATE(submit_date) = CURDATE() ; ",ARRAY_A);
сначала вы не можете использовать обозначение стрелки с массивом
потому что json_decode ($ jsonString, true) вернет массив
вы можете использовать его без истинного флага или просто получить доступ к нему как массив
поэтому вы не можете использовать его так:
foreach ($product as $v){ echo $v->product; }
попробуйте использовать его так:
foreach ($product as $v){ echo $v['product']; }
согласно вашему обновлению
все, что вы делаете, правильно. Но проблема в ваших индексах. теперь попробуйте сделать это:
foreach($product as $p) { if(!empty($p[0]['product'])) { echo $p[0]['product']; } }
или вы можете заменить if с более коротким:
echo !empty($p[0]['product'])? $p[0]['product']: null;