php数组添加索引的id,php – 创建两个数组,一个0索引,另一个ID索引,引用连接两个...

标题很难到达,但基本上我正在尝试做的是从我的数据库中检索一些数据,并将其中的部分插入到两个数组中:

>第一个数组是一个常规有序数组,所以

$list = [

0 => ['id' => 'a', 'value' => 2],

1 => ['id' => 'b', 'value' => 4],

// etc

];

>第二个数组将使用对象的唯一id作为数组的键,所以

$map = [

'a' => ['id' => 'a', 'value' => 2],

'b' => ['id' => 'b', 'value' => 4],

// etc

];

但是,我希望$list和$map的实际内容通过引用链接,所以如果我更改一个,另一个会更新.

// update `a`'s value

$map['a']['value'] = 10;

// will echo "TRUE"

echo ($list[0]['value'] === 10 ? 'TRUE' : 'FALSE');

但是,我正在使用的代码不起作用,我可以看到原因,但不知道如何解决它.

这是我脚本中发生的一些伪代码:

// Sample data

$query_result = [

['id' => 'a', 'other_data' => '...'],

['id' => 'b', 'other_data' => '...'],

['id' => 'c', 'other_data' => '...'],

// etc

];

$list = [];

$map = [];

foreach ($query_result as $obj) {

// Problem is here, $temp_obj gets reassigned, rather than a new variable being created

$temp_obj = ['foreign_key' => $obj['id'], 'some_other_data' => 'abc', ];

// Try to have object that is inserted be linked across the two arrays

$list[] = &$temp_obj;

$map[$obj['id']] = &$temp_obj;

}

// Both will just contain my 3 copies of the last item from the query,

// in this case, `['id' => 'c', 'other_data' => '...'],`

var_dump($list);

var_dump($map);

这是一个非常简化的版本,但基本上是相同的.

因此,当我循环遍历我的对象并将它们添加到两个数组$list和$map时,如何添加这些对象以使它们成为彼此的链接?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值