我有这段代码:
function returnArray() {
$intData = array("1", "3");
return $intData[array_rand($intData)];
}
我正在尝试创建一个与上面类似的功能。
我没有用逗号添加整数,而是试图用整数破坏逗号。
使用json_decode
,file_get_contents
,foreach
循环,array
,array_rand
& return
这是我的代码:
function Something() {
foreach (json_decode(file_get_contents('removed'), true) as $jsonArr) {
$arrData = array(implode(",", $jsonArr));
$roundData = $arrData[array_rand($arrData)];
return $roundData;
}
}
我只是想知道我是否做得对,如果阵列是否正确。
它也不会从array
返回任何内容。
当我尝试内爆时,会抛出错误
内爆无效参数
答案 0 :(得分:2)
您似乎正在尝试从JSON响应中打印随机room_id
。
问题在于:
$intData = array(implode(",", $arrRoomsReverse['room_id']));
您不能像这样初始化数组。
只需将room_id
元素推送到数组,如下所示:
$intData[] = $arrRoomsReverse['room_id'];
现在,您可以在循环外部获得随机room_id
:
$intRoom = $intData[array_rand($intData)];
该功能如下:
function returnArray()
{
$str = file_get_contents('...');
$jsonArr = json_decode($str, true);
foreach ($jsonArr as $arrRoomsReverse)
{
$intData[] = $arrRoomsReverse['room_id'];
}
$intRoom = $intData[array_rand($intData)];
return $intRoom;
}
并调用该函数:
echo returnArray();