PHP-在指定键之前获取先前数组元素的快速方法

PHP-在指定键之前获取先前数组元素的快速方法,php,arrays,Php,Arrays,如何获取特定数组键之前的所有前一个元素 这是我的阵列: $key = 256; $array = ( 125 => array(571, 570), 284 => array(567, 566), 256 => array(562, 560), 110 => array(565, 563), ); 现在我想要这样的结果: $array = ( 125 => array(571, 570), 284 => array(567, 566) ); 您可以迭

如何获取特定数组键之前的所有前一个元素

这是我的阵列:

$key = 256;

$array = (
125 => array(571, 570), 
284 => array(567, 566),
256 => array(562, 560),
110 => array(565, 563),
);
现在我想要这样的结果:

$array = (
125 => array(571, 570), 
284 => array(567, 566)
);

您可以迭代并将值推送到
newArray
,直到您按下要搜索的键:

$Key = 256;

$array = array(
"125" => array(571, 570), 
"284" => array(567, 566),
"256" => array(562, 560),
"110" => array(565, 563),
);

$newArray = [];

foreach($array as $key => $value) 
{   
  if($key == $Key) break;
  $newArray[$key] = $value;
}

print_r ($newArray); 
/*
=> Array ( 
    [125] => Array ( [0] => 571 [1] => 570 ) 
    [284] => Array ( [0] => 567 [1] => 566 ) 
   )
*/

您可以迭代并将值推送到
newArray
,直到您按下要搜索的键:

$Key = 256;

$array = array(
"125" => array(571, 570), 
"284" => array(567, 566),
"256" => array(562, 560),
"110" => array(565, 563),
);

$newArray = [];

foreach($array as $key => $value) 
{   
  if($key == $Key) break;
  $newArray[$key] = $value;
}

print_r ($newArray); 
/*
=> Array ( 
    [125] => Array ( [0] => 571 [1] => 570 ) 
    [284] => Array ( [0] => 567 [1] => 566 ) 
   )
*/

首先使用and获取键的数字索引。然后使用


首先使用and获取键的数字索引。然后使用


你可以做这件奇怪的事:

$key = 256;

$array = array(
    125 => array(571, 570), 
    284 => array(567, 566),
    256 => array(562, 560),
    110 => array(565, 563),
);

print_r(array_slice($array, array_search($key, array_keys($array)), null, true));
输出

Array
(
    [256] => Array
        (
            [0] => 562
            [1] => 560
        )

    [110] => Array
        (
            [0] => 565
            [1] => 563
        )

)
更新

我意识到现在我再看一遍,我是向后看的。我称之为诵读困难症时刻。。。正确的方法是这样的

print_r(array_slice($array, 0, array_search($key, array_keys($array)),true));

你可以做这件奇怪的事:

$key = 256;

$array = array(
    125 => array(571, 570), 
    284 => array(567, 566),
    256 => array(562, 560),
    110 => array(565, 563),
);

print_r(array_slice($array, array_search($key, array_keys($array)), null, true));
输出

Array
(
    [256] => Array
        (
            [0] => 562
            [1] => 560
        )

    [110] => Array
        (
            [0] => 565
            [1] => 563
        )

)
更新

我意识到现在我再看一遍,我是向后看的。我称之为诵读困难症时刻。。。正确的方法是这样的

print_r(array_slice($array, 0, array_search($key, array_keys($array)),true));

此处可能重复,请重新阅读。它不能解决我的问题。@MDAbubakar请重新表述您的问题,您是指给定键之前的元素吗?因为这就是你想要的结果。是的。。。我想在给定键之前获取元素,这肯定是重复的。我会很快看一看。这里可能有重复的,请再读一遍。它不能解决我的问题。@MDAbubakar请重新表述您的问题,您是指给定键之前的元素吗?因为这就是你想要的结果。是的。。。我想在给定键之前获取元素,这肯定是重复的。我会快速看一看。这是我的想法,但我有一个诵读困难的时刻,并以另一种方式围绕lol。这是我的想法,但我有一个诵读困难的时刻,并以另一种方式围绕lol。