php - 分解为数组(键->值)

标签 php mysql arrays

嘿伙计们,我正在寻找一个小问题的解决方案,PHP 似乎运行正常,我看不到 SQL 查询有任何问题,有人能看到我的代码有什么明显的错误吗?我真的被困在这里了。

“items”行的内容类似于以下内容:

30->0,31->0,32->0,36->0,33->10,29->0,35->0,6->0,5->0,8->0,9->0,7->0,14->0,15->0,10->0,17->0

我只需要它们分解成一个数组,并在该数组中查找每个值,用适当的“键”在页面上打印。我看过这里:explode() into $key=>$value pair并没有得出结论 - 这是完整的代码,如果有人可以帮助我,告诉我我在做什么,或者甚至指出我正确的方向,我会非常高兴。

$id = $_GET['order'];
if(!is_number($id)){
    exit();
}
$sql = "SELECT * FROM ORDERS WHERE id='$id'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
    $dataString = $row["items"];
    foreach (explode(",", $dataString) as $cLine) {
    list ($cKey, $cValue) = explode('->', $cLine, 2);
        $itemarray[$cKey] = $cValue;
    }

    foreach($itemarray as $key => $value) {
        echo "<br/>".$value." x ".$key;
    }
    }
} else {
    echo "0 results";
}

谢谢。

最佳答案

我还不能发表评论,所以我发布了一个答案。以下代码似乎工作正常:

$dataString = "30->0,31->0,32->0,36->0,33->10,29->0,35->0,6->0,5->0,8->0,9->0,7->0,14->0,15->0,10->0,17->0";
foreach (explode(",", $dataString) as $cLine) {
  list ($cKey, $cValue) = explode('->', $cLine, 2);
  $itemarray[$cKey] = $cValue;

  foreach($itemarray as $key => $value) {
    echo "<br/>".$value." x ".$key;
  }
}

所以我最好的选择是查询返回的数据不符合预期。

关于php - 分解为数组(键->值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32356793/

相关文章:

mysql - 有没有办法将所有现有的表数据转换为 UTF8 排序规则?

javascript - ajax与php数据闪烁更新

mysql - 有没有一种快速的方法可以在任何数据库中进行 '%phrase%' 搜索?

php - 从友好的 URL 获取 Blogger 的博客 ID,无需屏幕抓取

php - 带有 "WHERE"问题的小型 php fetch 查询

php - 'file_get_contents' 内容已加密?

c - 如何创建二维数组?

arrays - xPages 以作用域变量作为数据源重复控制

C++ - 使用临时变量索引数组

php - 编译失败 : invalid range in character class at offset 4