PHP 将关联数组 ID 值替换为另一个数组中的名称值

发布于 2024-11-16 10:56:56 字数 867 浏览 0 评论 0原文

可能的重复:
如何合并 PHP 数组?

我有两个数组,都是 db 的结果查询。我在下面有一个简单的例子(没有真实数据 - 只是用于演示目的。真实数据要复杂得多)。

$results:

Array 
( [0] => 
  Array ( [id] => 20 [age] => 29 )
  [1] =>
  Array ( [id] => 593 [age] => 38 )
)


$persons:

Array 
( [0] => 
  Array ( [id] => 593 [name] => Jack Jones )
  [1] =>
  Array ( [id] => 20 [name] => John Smith )
)

我的问题是:如何匹配 $persons[name] 来替换 $results[id] ,这样我最终会得到:

$results:

    Array 
    ( [0] => 
      Array ( [id] => John Smith [age] => 29 )
      [1] =>
      Array ( [id] => Jack Jones [age] => 38 )
    )

数组是无序的 - 如果键匹配,我需要替换值(是的, $ 中的每个键)结果在 $persons 中肯定有相应的条目)。非常感谢任何帮助!

Possible Duplicate:
How can I merge PHP arrays?

I have two arrays, both results of db queries. I have a simple example below (no the real data- just for demo purposes. The real data is significantly more complex).

$results:

Array 
( [0] => 
  Array ( [id] => 20 [age] => 29 )
  [1] =>
  Array ( [id] => 593 [age] => 38 )
)


$persons:

Array 
( [0] => 
  Array ( [id] => 593 [name] => Jack Jones )
  [1] =>
  Array ( [id] => 20 [name] => John Smith )
)

My question is: how can I match the $persons[name] to replace $results[id] so that I end up with:

$results:

    Array 
    ( [0] => 
      Array ( [id] => John Smith [age] => 29 )
      [1] =>
      Array ( [id] => Jack Jones [age] => 38 )
    )

the arrays are unorderd - I need to replace values if the keys match (and yes, each key in $results definitely has a corresponding entry in $persons). Any help much appreciated!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

狠疯拽 2024-11-23 10:56:56
$a = array(
array('id'=>58,'name'=>'name1'),
array('id'=>63,'name'=>'name2'),
);
$b = array(
array('id'=>63,'value'=>'value2'),
array('id'=>58,'value'=>'value1'),
);
//making key-value
foreach(array_values($a) as $tmp)
{
      $aProcessed[$tmp['id']]=$tmp['name'];
}
foreach(array_values($b) as $tmp)
{
      $bProcessed[$tmp['id']]=$tmp['value'];
}
//uncomment to see key-value arrays
//var_dump($aProcessed,$bProcessed);
//combining
foreach($aProcessed as $key=>$value)
{
      $result[]=array('name'=>$aProcessed[$key],'value'=>$bProcessed[$key]);   
}
var_dump($result);
$a = array(
array('id'=>58,'name'=>'name1'),
array('id'=>63,'name'=>'name2'),
);
$b = array(
array('id'=>63,'value'=>'value2'),
array('id'=>58,'value'=>'value1'),
);
//making key-value
foreach(array_values($a) as $tmp)
{
      $aProcessed[$tmp['id']]=$tmp['name'];
}
foreach(array_values($b) as $tmp)
{
      $bProcessed[$tmp['id']]=$tmp['value'];
}
//uncomment to see key-value arrays
//var_dump($aProcessed,$bProcessed);
//combining
foreach($aProcessed as $key=>$value)
{
      $result[]=array('name'=>$aProcessed[$key],'value'=>$bProcessed[$key]);   
}
var_dump($result);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文