【问题标题】:PHP arrays. inserting "$key" => "$value" pair into array with array_push();PHP 数组。使用 array_push() 将 "$key" => "$value" 对插入数组中;
【发布时间】:2011-12-31 00:29:35
【问题描述】:

为什么这不起作用?

$slidetotal=1;      
$slideids = array();
    while ($rowcs = mysql_fetch_array($orig_slides_result)) {
    $key = $slidetotal;
    array_push($slideids[$key], $rowcs['id']);
    $slidetotal++;
    }

我收到此错误: [phpBB 调试] PHP 注意:在文件 ///*.php 的第 161 行:array_push() [function.array-push]:第一个参数应该是一个数组

尽管有人发表了评论,但您可以在此页面上执行此操作: http://php.net/manual/en/function.array-push.php , (find: "将 "$key" => "$value" 对插入数组中")

将单个值列表插入 php 数组的下一个最佳方法是什么?顺便说一句,我真的不敢相信在 google.com 上很难找到一些东西。认真的吗?

【问题讨论】:

  • 该评论完全错误。您不能使用 array_push() 将键值对推送到数组中。
  • 在我尝试使用 array_push() 之前,我正在做 Tim Cooper 和 osoner 认为正确的事情。
  • 也许我正确地制作了数组,但没有正确地从中检索变量。这是正确的吗? $id=$slideids[$i'];

标签: php array-push


【解决方案1】:

PHP.net 的评论不正确。那就是将$rowcs['id'] 推入数组$slideids[$key],而不是数组$slideids

您应该执行以下操作来代替您的array_push() 呼叫:

$slideids[$key] = $rowcs['id'];

【讨论】:

  • 这正是我在查找之前最初尝试过的。 (除了我没有将 $slidetotal 重新定义为 $key)我不确定出了什么问题,除了我无法从数组中检索变量。
  • 也许我没有正确检索它。这是正确的吗? $id=$slideids[$id'];
【解决方案2】:

你为什么不这样做;

$slidetotal=1;      
$slideids = array();
while ($rowcs = mysql_fetch_array($orig_slides_result)) {
    $slideids[$slidetotal] = $rowcs['id'];
    $slidetotal++;
}

如果您不需要从 1 开始的密钥,也可以执行以下操作;

$slideids = array();
while ($rowcs = mysql_fetch_array($orig_slides_result)) {
    $slideids[] = $rowcs['id'];
}

【讨论】:

    【解决方案3】:

    嗯,我认为搜索将适用于谷歌 :) 无论如何,错误会告诉你你需要知道的一切。这意味着 array_push 的第一个参数不是一个数组,你给 array_push ($slideids[$key]) 一个值(字符串)。 另外为什么你需要在php中使用array_push?我宁愿使用

    $slideids[] = $rowcs['id'];
    

    而你想要做的是:

    $slideids[$key] = $rowcs['id'];
    

    我猜...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-23
      • 1970-01-01
      • 1970-01-01
      • 2012-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-17
      相关资源
      最近更新 更多