Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将json文件转换为php数组以从数组中选择随机名称_Json_Php_Arrays - Fatal编程技术网

将json文件转换为php数组以从数组中选择随机名称

将json文件转换为php数组以从数组中选择随机名称,json,php,arrays,Json,Php,Arrays,问题如下: 我正在将附加到每个名称的名称和值列表(repCode)从excel导出到一个文件中 然后我想将文件转换成一个数组,这样我就可以有一段代码,从数组中选择一个随机名称,并显示随机名称(以及附加到名称的值(repCode)) 到目前为止,我已经尝试了很多选择,但我一直遇到一些问题,我正在努力寻找解决方案。一个例子是: <?php $jsondata = file_get_contents("Names.json"); $json = json_decode($jsondata, t

问题如下:

我正在将附加到每个名称的名称和值列表(repCode)从excel导出到一个文件中

然后我想将文件转换成一个数组,这样我就可以有一段代码,从数组中选择一个随机名称,并显示随机名称(以及附加到名称的值(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;

?>
下面是一些代码:


我回显文件时没有结果。 因此,我甚至无法找到我想要使用已转换为数组的文件的部分,因此我可以使用代码来选择随机名称+关联的代表代码并显示它


任何帮助都将不胜感激。

在您的第一个示例中,您试图将
$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"];

在第一个示例中,您试图将
$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"];

第一个示例看起来像是随机元素部分依赖于
$output
是一个数组,但它是一个字符串。使用
array\u rand()
选择数组的随机元素。非常感谢您的反馈。有效。第一个示例看起来像是随机元素部分依赖于
$output
是一个数组,但它是一个字符串。使用
array\u rand()
选择数组的随机元素。非常感谢您的反馈。工作。你的代码工作异常。非常感谢@abracadver。您的代码运行异常。非常感谢@Abracadver。