在 PHP 中访问关联数组的内部数组



我从MySQL数据库创建了一个非常简单的ID关联数组。

数组的内容看起来有点像这样:

[0]=> array(1) { ["id"]=> int(2) } 
[1]=> array(1) { ["id"]=> int(3) } 
[2]=> array(1) { ["id"]=> int(4) } 
[3]=> array(1) { ["id"]=> int(15) } 
[4]=> array(1) { ["id"]=> int(17) } 
[5]=> array(1) { ["id"]=> int(18) } 
[6]=> array(1) { ["id"]=> int(3) } etc.

但是,出于使用数组的目的,我需要访问 ID 整数,以便它们可用于标记父表中的行。 但是,我创建的脚本似乎没有使用["id"]=> int(2(,因此代码失败。

我拥有的代码如下:

MySQL代码:

public function unused()
{
$query = "select person.id from person, thing, person_thing
WHERE flag = 1 AND person.id = person_thing.person_id AND person_thing.thing_id = thing.id and thing.name != 'used'
AND person.name NOT IN (select person.name from person, thing, person_thing WHERE person.id = person_thing.person_id
AND person_thing.thing_id = thing.id and thing.name = 'used')";
$stmt = $this->Conn->prepare($query);
$stmt->execute(array());
return 
$stmt->fetchAll(PDO::FETCH_ASSOC);

函数代码:

{
$things = $thing->unused();
$smarty->assign('thing_used', $things);
for ($i = 0; $i <= count($things); $i++) {
$gameView->iterateThings($things[$i]);
}

迭代方法代码

Public function iterateThings($id)
{
$changeFlag = "UPDATE thingview SET flag = false WHERE  id= :id";
$stmt = $this->Conn->prepare($changeFlag);
$stmt->execute(array(':id' => $id));
}

我有一个名为 set up 的视图,其中布尔标志全部设置为 true。 我正在尝试使用此代码更改关联数组$things中所有 person.id 上的标志设置。 天真地,我认为这就足够了,但每次我运行代码时,标志都保持不变。 看起来数组的内容是:array(1( { ["id"]=> int(2( },其中我需要的是{ ["id"]=> int(2( }我需要索引消失,只需要数组。 我已经无限地用谷歌搜索了这个广告,但没有成功。 有什么想法吗?

我已经意识到我已经创建了一个多维数组...... 这让我很不舒服。 我相信在这一点上,需要对多维数组进行更多的研究,如果我需要进一步的帮助,我将重新表述这个问题。

最新更新