0
編集: @ Felix Klingと@marioのおかげで、名前付きキャプチャグループとPREG_SET_ORDER
に向いてくれたので、私は今日何かを完全に学びました。効率的に配列を変換する
私はより良いアルゴリズム自体について興味があります。だから、preg_match()
が関与していないとふりをしてください。
編集2:抽象化の問題
ここで別の質問に答え、私は実際につまずいたものの、その
この転換のための私のコード:それに
Array
(
[0] => Array (
[0] => 1
[1] => 3
)
[1] => Array (
[0] => Description text
[1] => Different Description text
)
[2] => Array (
[0] => 123.456.12
[1] => 234.567.89
)
[3] => Array (
[0] => 10.00
[1] => 10.00
)
[4] => Array (
[0] => 10.00
[1] => 30.00
)
)
を:
Array
(
[0] => Array
(
[qty] => 1
[description] => "Description text"
[sku] => 123.456.12
[price] => 10.00
[total] => 10.00
)
…
)
非常に醜いです:
$field_names = array('qty', 'description', 'sku', 'price', 'total');
$result_arr = array();
$num_iter = count(matches[0]);
for ($i = 0; $i < $num_iter; $i++) {
foreach ($field_names as $index => $field_name) {
$result_arr[$i][$field_name] = array_shift($input_arr[$index]);
}
}
改善のための任意の提案ですか?
名前付きキャプチャグループを使用する方が簡単かもしれません... –
そして、 'PREG_SET_ORDER'が役立つかもしれません。 – mario
確かに、実際のソリューションが必要ない場合、これはcodereview.SEまたはcodegolf.SEに属していますか? (それは悪い質問ではない) –