在数组(数组内部)PHP 上获取一个部分



我需要抓取数组(数组内部)中的数据,这些数据只会抓取每行的第二行和第三行。

<?php
$salaries = array(
   //I WANT TO MAKE A NEW ARRAY FROM ALL THE SECOND AND THE THIRD ROWS 
               "a" => 2000, 1500, 3000, 1950
               "b" => 1000, 2300, 2233, 2400
               "c" => 500 , 6590, 1024, 2048
   //FOR EXAMPLE RESULTS IN THIS CASE WOULD BE :
   //$newarray = array(1500,3000,2300,2233,6590,2048);
      );
?>

如果没有该循环的直接命令就可以:)

谢谢!

首先,数组声明在语法上无效。

如果你的意思是它是一个多维数组,如下所示:

$salaries = array(
   "a" => array(2000, 1500, 3000, 1950),
   "b" => array(1000, 2300, 2233, 2400),
   "c" => array(500 , 6590, 1024, 2048)
);

然后,可以使用两个循环来完成此操作。在第一个循环中,遍历所有子数组。遍历每个子数组中的值,检查该值是第二个还是第三个。如果是这样,请将其添加到新数组中:

foreach ($salaries as $key => $arr) {
    for ($i=0; $i < count($arr); $i++) { 
        if ($i == 1 || $i == 2) {
            $result[$key][] = $arr[$i];
        }
    }
}
print_r($result);

演示


为了完整起见,我将为值是逗号分隔的字符串而不是数组的情况添加解决方案:

$salaries = array(
   "a" => '2000, 1500, 3000, 1950',
   "b" => '1000, 2300, 2233, 2400',
   "c" => '500 , 6590, 1024, 2048'
);

逻辑完全相同,但不是直接访问内部数组元素,而是必须使用 explode() 来创建值数组。然后使用 array_slice() 获取第二个和第三个元素,并从中创建一个新数组:

$result = array();
foreach ($salaries as $key => $value) {
    $pieces = explode(', ', $value);
    $slice[$key] = array_slice($pieces, 1, 2);
    $result = array_merge($result, $slice);
}

演示

最新更新