【发布时间】:2014-07-18 06:22:18
【问题描述】:
下面是我的数组结构
Array
(
[0] => Array
(
[product_id] => 59
[product_name] => Samsung Champ DUOS E2652
[product_price] => 4439
[sub_cat_name] => Samsung
[sub_cat_url] => samsung
[image] => samsung-champ-duos-e2652---1414801404364308.jpg
[currency] => ₹
)
[1] => Array
(
[product_id] => 195
[product_name] => Samsung Galaxy Tab 4 7.0
[product_price] => 17847
[sub_cat_name] => Samsung
[sub_cat_url] => samsung
[image] => galaxy-tab-4-7-0---1715601405057269.png
[currency] => ₹
)
[2] => Array
(
[product_id] => 284
[product_name] => Samsung Galaxy Tab 3 Lite 7.0
[product_price] => 18000
[sub_cat_name] => Samsung
[sub_cat_url] => samsung
[image] => galaxy-tab-3-lite-7-0---1590061405576878.png
[currency] => ₹
)
[3] => Array
(
[product_id] => 19
[product_name] => Samsung Galaxy Star
[product_price] => 4833
[sub_cat_name] => Samsung
[sub_cat_url] => samsung
[image] => feature-img144811404109906.jpg
[currency] => ₹
)
[4] => Array
(
[product_id] => 186
[product_name] => Samsung Galaxy S5 Active
[product_price] => 31922
[sub_cat_name] => Samsung
[sub_cat_url] => samsung
[image] => galaxy-s5-active368091404989896.png
[currency] => ₹
)
)
我想根据sub_cat_url 对这个数组进行排序,如下所示
array
(
[0] => samsung
[0] => Array
(
[product_id] => 186
[product_name] => Samsung Galaxy S5 Active
[product_price] => 31922
[sub_cat_name] => Samsung
[sub_cat_url] => samsung
[image] => galaxy-s5-active368091404989896.png
[currency] => ₹
)
[1] => Array
(
[product_id] => 284
[product_name] => Samsung Galaxy Tab 3 Lite 7.0
[product_price] => 18000
[sub_cat_name] => Samsung
[sub_cat_url] => samsung
[image] => galaxy-tab-3-lite-7-0---1590061405576878.png
[currency] => ₹
)
)
为此,我编写了如下代码。
for($i = 0; $i < $count; $i++){
if($i == 0){
$search_array[$i] = $search_data[$i]["sub_cat_name"];
$search_array[$i] = $search_data[$i]["product_name"];
$j += 1;
}
else if($search_data[$i]["sub_cat_url"] !== $search_data[$i]["sub_cat_url"]){
$search_array[$i] = array($search_data[$i]["sub_cat_name"]);
$search_array[$i] = array($search_data[$i]["product_name"]);
$j += 1;
}
else if($search_data[$i]["sub_cat_url"] === $search_data[$i]["sub_cat_url"]){
$search_array[$i] = array($search_data[$i]["product_name"]);
$j += 1;
}
}
但效果并不好。我也尝试使用内部 for 循环。它也没有给我实际的结果。有人可以帮我写下正确的循环语句吗? 提前谢谢你
【问题讨论】:
-
你想得到 sub_cat_url 字段过滤的产品?
-
是的..完全正确..对不起...忘记添加问题..现在将编辑
-
你不能通过传递你的子类别直接从数据库中获取它吗?或者你仍然需要它来编码
-
我需要通过编码..
标签: php arrays for-loop multidimensional-array