Я пытаюсь получить данные из этого json-файла, но мне нужны данные, соответствующие настраиваемому настраиваемому полю.
$str = file_get_contents('http://gold.explorethatstore.com/wp-content/themes/divi-ETS-child-theme/run_results_bgasc.json'); // decode JSON $json = json_decode($str, true); // default value $coinPrice = "Not Available"; $vendorName = get_field('bgasc_vendor_name'); // loop the json array foreach($json['coin'] as $value){ // check the condition if($value['coin_name'] == $vendorName){ $coinPrice = $value['url']; // get the price break; // exit the loop } } echo $coinPrice;
Итак, вот правильный код, который будет обрабатывать оба массива (с массивом «weight» или без него):
$str = file_get_contents('http://gold.explorethatstore.com/wp-content/themes/divi-ETS-child-theme/run_results_bgasc_gold.json'); // Set te Data in a multi-dimensional array $json = json_decode($str, true); // Default variable values $coin_price = "Not Available"; $url = ''; $break = false; // Get the vendor name (like the "coin_name" value) $vendorName = get_field('bgasc_vendor_name'); // Go through multi-dimensional array with multiple loops foreach ($json['categories'] as $category){ // Case with "weight" additional array if( array_key_exists ( 'weight' , $category ) ){ foreach ($category['weight'] as $weight){ foreach ($weight['coin'] as $coin){ // check the condition if($coin['coin_name'] == $vendor_name ){ $coin_price = $coin['price']; // get the price $url = $coin['url']; // get the url $break = true; // (exit other loops) break; // exit the loop } } if($break) break; // exit the loop } if($break) break; // exit the loop } else { // Case without "weight" additional array foreach ($category['coin'] as $coin){ // check the condition if($coin['coin_name'] == $vendor_name ){ $coin_price = $coin['price']; // get the price $url = $coin['url']; // Get the url $break = true; // (exit other loops) break; // exit the loop } } if($break) break; // exit the loop } } // output price echo $coin_price; // output URL echo $url;
Этот код проверен и работает