我几个小时都在闲逛,以获得一个特定的阵列,但无法弄明白。
我用foreach循环得到这个启动数组:
Array
(
[0] => Title 1
[1] => Image 1.jpg
[2] => Title 2
[3] => Image 2.png
[4] => Text 1
)
我生成了一个数组来订购第一个数组(当用户拖放第一个数组的元素时)
Array
(
[0] => 1
[1] => 4
[2] => 0
[3] => 2
[4] => 3
)
我需要的是将第二个数组(1,4,0,2,3)的VALUES与第一个数组的键([0],1 ...)链接到准确地说:
Array
(
[1] => Text 1
[4] => Image 2.png
[0] => Image 1.jpg
[2] => Title 1
[3] => Title 2
)
我尝试过array_combine,但它没有给我上面的结果。
我已经制定了一个模式来理解这个问题:
答案 0 :(得分:4)
这是一些伪代码(我复制粘贴并且懒得纠正它是有效的PHP 我纠正了它):
<?php
$items = Array
(
0 => 'Title 1',
1 => 'Image 1.jpg',
2 => 'Title 2',
3 => 'Image 2.png',
4 => 'Text 1',
);
$order = Array
(
0 => 1,
1 => 4,
2 => 0,
3 => 2,
4 => 3,
);
foreach ($order as $itemPosition) {
$sorted[] = $items[ $itemPosition ];
}
// optionally
ksort($sorted);
var_dump($sorted);
当然,这是假设您的$order
数组按键排列。如果不是,您可以在执行ksort
之前对其foreach
进行操作。
答案 1 :(得分:0)
您正在获取第二个数组的每个值,并将其用作第二个数组的键,以获取第一个数组的键,而使用第二个数组的顺序并键入输出:
$mapped = array();
foreach($arr2 as $value)
{
$mapped[$value] = $arr1[$arr2[$value]];
}
输出:
Array
(
[1] => Text 1
[4] => Image 2.png
[0] => Image 1.jpg
[2] => Title 1
[3] => Title 2
)