函数返回“Array”而不是实际输出

时间:2013-10-06 19:20:59

标签: php

我有这段代码:

function returnArray() { 
    $intData = array("1", "3"); 
    return $intData[array_rand($intData)]; 
}

我正在尝试创建一个与上面类似的功能。

我没有用逗号添加整数,而是试图用整数破坏逗号。

使用json_decodefile_get_contentsforeach循环,arrayarray_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返回任何内容。

当我尝试内爆时,会抛出错误

  

内爆无效参数

1 个答案:

答案 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();