-1
PHPスクリプトで解析されるJSONファイルのリザーブエンジニアリングに問題があります。次のようにJSONを分析するPHPコードは次のとおりです。PHPを使用したJSONの分析
// New search/info file
$a_info = json_decode(file_get_contents('data/vehicles.json'), true);
// Makes/Years options
$a_year = array();
$a_make = array();
foreach($a_info AS $ai) {
if($ai[0]['make'])
var_dump($ai);
if(array_key_exists($ai[0]['make'], $a_make))
$a_make[$ai[0]['make']] = $a_make[$ai[0]['make']] + 1;
else
$a_make[$ai[0]['make']] = 1;
if($ai[0]['year'])
if(array_key_exists($ai[0]['year'], $a_year))
$a_year[$ai[0]['year']] = $a_year[$ai[0]['year']] + 1;
else
$a_year[$ai[0]['year']] = 1;
}
// Sort the make/years arrays
krsort($a_year);
ksort($a_make);
var_dump($a_make);
// New listing file
$a_list = json_decode(file_get_contents('data/list.json'), true);
foreach($a_list['listing_ids'] AS $index => $id) {
if(isset($_GET['year']))
if($a_info[$id][0]['year'] != $_GET['year'])
unset($a_list['listing_ids'][$index]);
if(isset($_GET['make']))
if($a_info[$id][0]['make'] != $_GET['make'])
unset($a_list['listing_ids'][$index]);
if(isset($_GET['search'])) {
// Check name
if(
strpos(strtolower($a_info[$id][0]['name']), $_GET['search']) === false
AND strpos(strtolower($a_info[$id][0]['body']), $_GET['search']) === false
AND strpos(strtolower($a_info[$id][0]['year']), $_GET['search']) === false
AND strpos(strtolower($a_info[$id][0]['make']), $_GET['search']) === false
)
unset($a_list['listing_ids'][$index]);
}
}
私はJSONを再構築しようとしているが、私は$のa_makeやPHPの配列a_year $に表示するために複数のモデルや年を取得することはできません。これは私がJSONのために持っているものです。
{
"vechiles": [
{
"make": "Accura",
"year": "2006"
},
{
"make": "BMW",
"year": "200"
}
]
}
あなたは 'この' $のa_list'をprint_r'し、また、あなたが – Bluetree