PHP从另外两个数组创建数组


PHP create array from two other arrays

这是我在这里的第一篇文章,所以首先,很抱歉出现错误。我解决不了一些问题。我必须从另外两个数组创建一个数组:

阵列#1:

$a = array(5, 2, 3);

阵列#2:

$b = array(0 => array(
                      'key1' => '2',
                      'key2' => 'content2'),
          (1 => array(
                      'key1' => '3',
                      'key2' => 'content3'),
          (2 => array( 
                      'key1' => '5', 
                      'key2' => 'content1');

我的输出数组必须是这样的:

$output = array(0 => array(
                      'key1' => '5',
                      'key2' => 'content1'),
          (1 => array(
                      'key1' => '2',
                      'key2' => 'content2'),
          (2 => array( 
                      'key1' => '3', 
                      'key2' => 'content3');

我完全不知道如何解决我的问题。不知道该怎么办。我几乎什么都试过了。有什么帮助吗?如何重新开始?

您可以通过foreach循环实现这一点:

$a = array(5, 2, 3);
$b = array(
    array('key1' => '2', 'key2' => 'content2'),
    array('key1' => '3','key2' => 'content3'),
    array('key1' => '5', 'key2' => 'content1')
);
$new = array();
foreach($a as $key) {
    foreach($b as $item) {
        if($item['key1'] == $key) {
            array_push($new, $item);
        }
    }
}

示例


注意

在发布代码之前,请尝试提问。

您应该关注的是PHP的数组排序函数,并创建一个与您需要的相匹配的解决方案。最好查看uasort()/usort()

尝试循环创建新表

$x = array(5, 2, 3);
$y = array(0 => array(
                      'key1' => '2',
                      'key2' => 'content2'),
          1 => array(
                      'key1' => '3',
                      'key2' => 'content3'),
          2 => array( 
                      'key1' => '5', 
                      'key2' => 'content1'));
$new_arr = array();
foreach ($x as $xvalue) {
foreach ($y as $yvalue) {
   if($yvalue['key1']==$xvalue) {
$new_arr[] = $yvalue;
}
}
}
var_dump($new_arr);

沙箱

http://sandbox.onlinephpfunctions.com/code/7cd210a0282279af9dfe97395ea8eba04d9eb137