在PHP中,使用array_push()函数将"$key" => "$value"键值对插入数组。

3
为什么这个无法工作?
$slidetotal=1;      
$slideids = array();
    while ($rowcs = mysql_fetch_array($orig_slides_result)) {
    $key = $slidetotal;
    array_push($slideids[$key], $rowcs['id']);
    $slidetotal++;
    }

我遇到了这个错误: [phpBB Debug] PHP 注意:在文件 ///*.php 的第161行,array_push() [function.array-push]: 第一个参数应该是一个数组
虽然有人评论说你可以在这个页面上做到这一点:http://php.net/manual/en/function.array-push.php,(查找:“将一个"$key" => "$value"配对插入到一个数组中”)
那么,将一系列单值插入到php数组中的下一个最佳方法是什么?顺便说一句,我真的不敢相信在google.com上很难找到一些东西。 严肃吗?

1
那个评论完全是错的。你不能使用array_push()将键值对推入数组。 - BoltClock
在尝试使用array_push()之前,我一直按照Tim Cooper和osoner的建议去做,这被认为是正确的。 - Patrick
也许我创建数组的方式是正确的,但是从中检索变量的方式不正确。这样对吗?$id=$slideids[$i']; - Patrick
3个回答

6
那个PHP.net的评论是不正确的。它将$rowcs['id']推送到数组$slideids[$key],而不是数组$slideids。你应该使用以下代码替换你的array_push()调用:
$slideids[$key] = $rowcs['id'];

这正是我在查找之前尝试过的方法(除了我没有将$slidetotal重新定义为$key)。我不确定出了无法从数组中检索变量之外还出了什么问题。 - Patrick
也许我没有正确地检索它。这是正确的吗?$id=$slideids[$id']; - Patrick

0

为什么不这样做呢;

$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'];
}

0

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

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

你想要做的是:

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

我猜测...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接