将爆炸数组转换为字符串

时间:2014-04-09 00:03:56

标签: php mysql arrays explode

在我正在创建的项目中,我有一个mysql列,它是来自数据库的不同数据片段的数组。这些数据包含我想要显示的信息。为了在我使用的数组中分离这些项目,

$get_query = mysql_query('Select array FROM data');
while($dataRow = mysql_fetch_assoc($getfrnd_query)) {
    $array = $dataRow['array'];
    if($array != "") {
        $data_from_array_column = explode("," $array);
        $getdata = mysql_query("SELECT * FROM info WHERE item = $data_from_array_column");
        //Then I used a mysql_fetch_assoc to get data based on the item.
    }
}

当我运行此代码时,我收到一个错误"数组转换为$ getdata"行的字符串转换。 有没有办法让这个工作?

谢谢。

1 个答案:

答案 0 :(得分:0)

问题是explode返回一个数组,其中包含您用作分隔符(在您的情况下为,)的字符之间的字符串,而不是字符串。

PHP很生气,因为它不知道如何自动将数组转换为字符串。所以,你需要自己转换它。选项包括:

  1. 您想要选择item等于数组中{em> nth 元素的行$data_from_array_column。如果是这种情况,您需要在爆炸后插入以下代码行:

    $data_from_array_column = $data_from_array_column[0];

  2. 如果要选择匹配 $data_from_array_column数组中任何元素的位置,它会变得更复杂。你需要在爆炸后添加这一行:

    $data_from_array_column = implode("' OR item='",$data_from_array_column);

    并将下一行的查询更改为:

    $getdata = mysql_query("SELECT * FROM info WHERE item='$data_from_array_column'");

    这将创建一个看起来像这样的MySQL查询:

    SELECT * FROM info WHERE item='foo' OR item='bar' OR item='bla'