私はこのような配列があります。PHPグループ配列は
Array (
[0] => ing_1_ing
[1] => ing_1_amount
[2] => ing_1_det
[3] => ing_1_meas
[4] => ing_2_ing
[5] => ing_2_amount
[6] => ing_2_det
[7] => ing_2_meas
)
を私は値このようなアレイにグループ化する:
Array (
[0] => Array(
[0] => ing_1_ing
[1] => ing_1_amount
[2] => ing_1_det
[3] => ing_1_meas
)
[1] => Array(
[0] => ing_2_ing
[1] => ing_2_amount
[2] => ing_2_det
[3] => ing_2_meas
)
)
のような名前の他の多くの項目があるかもしれませんそれ:ing_NUMBER_type
私はそれをどのようにしてグループ化したいのですか?私はこれを試してみましたが、何らかの理由で、strpos()
は時々失敗:
$i = 1;
foreach ($firstArray as $t) {
if (strpos($t, (string)$i)) {
$secondArray[--$i][] = $t;
} else {
$i++;
}
}
何が悪いのでしょうか?アドバイスできますか?
$result = array();
foreach ($firstArray as $value)
{
preg_match('/^ing_(\d+)_/', $value, $matches);
$number = $matches[1];
if (!array_key_exists($number, $result))
$result[$number] = array();
$result[$number][] = $value;
}
基本的にはあなたが最初の配列を反復処理、そこにあるものの数を参照し、最終的な配列内の適切な場所にそれを置く:私は思い何
簡単に素晴らしい! – Pateman