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

时间:2015-03-05 01:53:05

标签: php 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');

我完全不知道如何解决我的问题。不知道该怎么做。我几乎尝试了一切。有帮助吗?如何开始(再次)?

2 个答案:

答案 0 :(得分:1)

您可以通过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);
        }
    }
}

Example


注意

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

您应该关注的是PHP's array sorting functions并创建一个符合您需求的解决方案。最好查看uasort() / usort()

答案 1 :(得分:1)

尝试循环以创建新表格

$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