私は、combinedという関数を持っており、配列の配列をループします。具体的には、顧客の名前と住所行1に基づいて1つ以上の注文と一致する人を検索しています。顧客が2つの注文を行うと、これをキャッチして3つ以上の場合は結合します。私は再帰的に私は配列インデックスがすべての関数呼び出しでリフレッシュすると思った私が理解していない無効なオフセットエラーを取得する関数を呼び出しますか?あなたは、配列を再インデックスする必要があり再帰的配列クリーンアップ
function combined(Array $all) {
//find any matching single orders and combine
$count = count($all);
$combinedorder = array();
for($i=1; $i < $count; $i++) {
for($j=1; $j < $count; $j++) {
//if order # is not the same
if(strcasecmp($all[$i][0], $all[$j][0]) !== 0){
//if name matches
if(strcasecmp($all[$i][2], $all[$j][2]) == 0) {
//if address line 1 matches
if(strcasecmp($all[$i][3], $all[$j][3]) == 0) {
$combinedorder[] = array('ordernos' => array($all[$i][0], $all[$j][0]), $all[$i][1], $all[$i][2], $all[$i][3], $all[$i][4], $all[$i][5], $all[$i][6], $all[$i][7], $all[$i][8], $all[$i][9], $all[$i][10], 'orders' => array($all[$i][11], $all[$j][11]));
unset($all[$i]);
unset($all[$j]);
$all = array_merge($all, $combinedorder);
$all = array_values($all);
reset($all);
//this recursive call does not work. undefined offset error
combined($all);
}
}
}
}
}
return $all;
}
アレイの例と変更された外観を表示する必要があります。 – AbraCadaver