CATEGORY
インデックスで手動ではなく、一意の要素ごとに要素を取得できるように、要素のインデックスで整列された配列を並べ替えたいと思います。
前提条件
$products = array(
'CATEGORY' =>
array(
0 => 'book',
1 => 'book',
2 => 'desk',
),
/* FYI: Other keys have been removed for conciseness */
'DESCRIPTION' =>
array(
0 => 'Bar',
1 => 'sdfadasfdasfas',
2 => 'Barrrr',
),
);
事後条件
$products = array(
'CATEGORY' =>
array(
'book' =>
array(
0 =>
array(
'DESCRIPTION' => 'Bar',
),
1 =>
array(
'DESCRIPTION' => 'sdfadasfdasfas',
),
),
'desk' =>
array(
0 =>
array(
'DESCRIPTION' => 'Barrrr',
),
),
),
)
試み
$cat_to_index = '';
foreach (array_values(array_unique($products['CATEGORY'])) as $category => $uniq_cat) {
for($i=array_search($uniq_cat, $products['CATEGORY']);
$i!==FALSE; $i=array_search($uniq_cat, $products['CATEGORY']))
$cat_to_index .= $i; // just for debugging
}
コードパッドでの実行を参照してください。
エラー
メモリ不足(無限ループ)。O(n)
できれば、この問題の解決策を探してください。