使用strpos在数组内推送数组

时间:2017-08-02 08:30:15

标签: php arrays multidimensional-array foreach

我有一个数组,其中键是输入的名称,值是来自表单的输入值。应该看起来像这样

array {
  'qty' => '0',
  'name' => 'No name',
  'qty1' => '1',
  'name1' => 'John Cena'
  'qty2' => '2',
  'name2' => 'You cant see him'
}

我使用这个只获得字符为1和2的键,在这种情况下'qty1''name1'' qty2''name2',我将它推入空数组$ emptyArray

foreach ($inputs as $x => $x_value) {
  if (stripos($x, "1") !== false) {
    array_push($emptyArray, $x_value);
  }
}

我希望得到

的结果
$arr = [
  0 => [1, 'John Cena'],
  1 => [2, 'You cant see him']
];

但是我得到了这个:(

array(6) {
  ["qty"]=>
  string(1) "0"
  ["name"]=>
  string(7) "No name"
  ["qty1"]=>
  string(1) "1"
  ["name1"]=>
  string(9) "John Cena"
  ["qty2"]=>
  string(1) "2"
  ["name2"]=>
  string(16) "You cant see him"
}

1 个答案:

答案 0 :(得分:1)

$limit = count($inputs) / 2;
for ($idx = 0; $idx < $limit; ++$idx) {
    if (array_key_exists('qty'.$idx, $inputs) && array_key_exists('name'.$idx, $inputs)) {
        $arr[] = array($inputs['qty'.$idx], $inputs['name'.$idx]);
    }
}