问题如下:
我正在将Excel中每个名称附加的名称和值(repCode)列表导出到json文件中。
然后,我想将json文件转换为php数组,以便可以使用一段代码从php数组中选择一个随机名称并显示该随机名称。名称(以及附加在名称上的值(repCode))。
到目前为止,我已经尝试了许多选择,但是我一直遇到难以解决的问题。一个例子是:
<?php
$jsondata = file_get_contents("Names.json");
$json = json_decode($jsondata, true);
$output = '<ul>';
foreach($json['Reps']as $reps){
$output .='<h4>' .$reps['Client']."<h4>";
$output .= "<li>".$reps['Code']."</li>";
}
$output .= "</ul>";
$element = $output[mt_rand(0, count($output) - 1)];
echo $element;
?>
那行不通。
json文件如下:“ Names.json”
{
"Reps": [
{"Client":"Jack",
"repCode":"tt1790861"},
{"Client":"James",
"repCode":"tt1790862"},
{"Client":"Sam",
"repCode":"tt1790863"},
{"Client":"Hendry",
"repCode":"tt1790864"},
{"Client":"Samone",
"repCode":"tt1790865"},
{"Client":"Judy",
"repCode":"tt179086"},
{"Client":"Jake",
"repCode":"tt1790867"},
{"Client":"Amy",
"repCode":"tt1790868"},
{"Client":"Brandon",
"repCode":"tt1790869"},
{"Client":"Blake",
"repCode":"tt17908610"},
{"Client":"Rick",
"repCode":"tt17908611"},
{"Client":"Morty",
"repCode":"tt17908612"}
]
}
然后下面是一些php代码:
<?php
// JSON string
$someJSON = "Names.json";
// Convert JSON string to Array
$someArray = json_decode($someJSON, true);
print_r($someArray); // Dump all data of the Array
echo $someArray[0]["Client"]; // Access Array data
?>
回显json文件时没有任何结果。 因此,我什至无法进入要使用已转换为json数组的php文件的位置,因此我可以使用代码来选择随机名称+相关的代表代码并显示它
任何帮助将不胜感激。
答案 0 :(得分:1)
在第一个示例中,您尝试使用$output
作为数组,不是。另外,您没有访问$element
的键:
$element = $json['Reps'][mt_rand(0, count($json['Reps']) - 1)];
//or
$element = $json['Reps'][array_rand($json['Reps'])];
echo $element['Client'];
echo $element['repCode'];
对于第二个示例,您实际上并没有加载JSON文件,然后忘记了Reps
键:
$someJSON = file_get_contents("Names.json");
$someArray = json_decode($someJSON, true);
print_r($someArray);
echo $someArray["Reps"][0]["Client"];
//or random
echo $someArray["Reps"][array_rand($someArray["Reps"])]["Client"];
答案 1 :(得分:-1)
$json = file_get_contents('Names.json');
$reps = json_decode($json, true);
$key = array_rand($reps['Reps']);
$randomRepName = $reps['Reps'][$key]['Client'];
$randomRepCode = $reps['Reps'][$key]['repCode'];