切片一些元素数组

时间:2015-06-18 17:54:46

标签: php arrays

你能告诉我,如何使用与原始数组中相同的键创建每个第二个键的新数组? 输入

$product_shop=[1=>200,5=>150, 10=>343, 2=>654, 6=>333]

我需要输出

$product_shop=[1=>200, 10=>343, 6=>333]

我无法对键进行排序。

3 个答案:

答案 0 :(得分:1)

我认为这是正确的方式

$product_shop=[1=>200,5=>150, 10=>343, 2=>654, 6=>333];
$second_array = [];
$i = 0;
foreach ($product_shop as $key=>$value) {
    if ($i % 2 == 0) {
        $second_array[$key] = $value;
    }
    $i++;
}

答案 1 :(得分:1)

下次给出一些你尝试过的例子:

<?php
$even = array();
$odd = array();
$i = 0;
foreach($product_shop as $key => $value){
    if($i++%2===0){
        $even[$key] = $value;
    } else {
        $odd[$key] = $value;
    }
}
var_dump($even, $odd); exit;
?>

答案 2 :(得分:1)

$product_shop=[1=>200,5=>150, 10=>343, 2=>654, 6=>333];

$i = 0;
$array = array_filter($product_shop, function ($e) use (&$i) {
    return ++$i & 1;
});

这将打印:

array(3) {
  [1]=>
  int(200)
  [10]=>
  int(343)
  [6]=>
  int(333)
}