将一个元素移动到数组的第一个位置

3

这是我的数组:

Array
(
    [0] => Array
        (
            [id] => 8
            [title] => MUSIC
        )

    [1] => Array
        (
            [id] => 17
            [title] => Indie
        )

    [2] => Array
        (
            [id] => 14
            [title] => SPORTS
        )

    [3] => Array         // Need to move this on first position
        (
            [id] => 15
            [title] => Hipster  
        )

    [4] => Array
        (
            [id] => 16
            [title] => Web Seriesdf
        )
   )

我希望将数组中键为 [3] 的元素排在第一位,其余元素依次排列。 我尝试了 array_merge 和 array_unshift,但都没有生效。

1
你的数组是否保证是数字索引?在移动元素后,你是否关心保留数字索引? - Jon
如果您能将某个答案标记为正确的话,那就太好了。 - Tirthraj Barot
5个回答

6
你只需执行三个步骤。

- 将 n'th 数组复制到变量中。
- 使用 unset() 删除数组中的 n'th 索引。
- 使用 array_unshift()variable 放置在数组的第 0th index 处。

步骤 1:

$array=$mainArray[N];

步骤2:

unset($mainArray[N]);

第三步:

array_unshift($mainArray, $array);

3
假设您的数组是$x;
$new_value = $x[3];
unset($x[3]);
array_unshift($x,$new_value);

这将解决你的问题。

1
@AniketPandya 哈哈哈,不要太贪心了,你已经有4个赞了 :-p , - Martin
2
https://dev59.com/A2gt5IYBdhLWcg3w8h01 - Abdulla Nilam
2
不确定为什么您删除了之前与此答案相同的答案?也许是因为它有一个类似于Adbulla的评论,说它是复制粘贴的? - Jon

2
您也可以使用array_merge函数。
<?php
$a = [1,2,3,4,5];
$new_value = [$a[1]];
unset($a[1]);
$c = array_merge($new_value,$a);
print_r($c);

检查输出:https://eval.in/590702

(注:此处为原文内容,无需翻译)

虽然这是一个不错的替代array_unshift的方法,但你能解释一下它是如何工作的吗? - Martin

2

用途

$array = array('3' => $array['3']) + $array;

phpfiddle预览eval.in预览

注意:我正在将我的数组移动到第二个。在您的方法中,请添加3。


示例

$array = array(
    '0' => array(
        'id'=>'8',
        'title'=>'MUSIC'
        ),
    '1'     => array(
        'id'=> '17',
        'title'=> 'Indie'
        ),
     '2'     => array(
        'id'=>'14',
        'title'=>'SPORTS',
        ),
     '3'     => array(
        'id'=>'14',
        'title'=>'SPORTS',
        ),
    );

$array = array('2' => $array['2']) + $array;
print_r($array);

输出

Array ( [2] => Array ( [id] => 14 [title] => SPORTS ) [0] => Array ( [id] => 8 [title] => MUSIC ) [1] => Array ( [id] => 17 [title] => Indie ) [3] => Array ( [id] => 14 [title] => SPORTS ) )

1
请使用 array_unshift(); 函数。
请查看以下代码。
<?php
$a = Array(
    '0' => Array('id' => '8','title' => 'MUSIC'),
    '1' => Array('id' => '17','title' => 'Indie'),
    '2' => Array('id' => '14','title' => 'SPORTS'),
    '3' => Array('id' => '15','title' => 'Hipster'),
    '4' => Array('id' => '16','title' => 'Web Seriesdf')
   );
echo '<pre>';print_r($a); 
$a3 = $a['3'];
unset($a['3']);
array_unshift($a,$a3);
echo '<pre>';print_r($a);   
?>

检查输出 - https://eval.in/590723

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接