【发布时间】:2016-12-18 21:53:18
【问题描述】:
我有点困惑从数组中获取第一个和最后一个值。我尝试使用explode()function,但我的逻辑无法正常工作,而且逻辑非常愚蠢。
我的数组
Array
(
[0] => 500 - 1112
[1] => 1113 - 2224
[2] => 2225 - 4446
[3] => 4446
)
我试过这种方式
$range = explode(',', $price_range);
$count = count($range);
if (1 == $count) {
$price_1 = $range[0];
$ranges['range1'] = explode(' - ', $price_1);
} else if (2 == $count) {
$price_1 = $range[0];
$price_2 = $range[1];
$ranges['range1'] = explode(' - ', $price_1);
$ranges['range2'] = explode(' - ', $price_2);
} else if (3 == $count) {
$price_1 = $range[0];
$price_2 = $range[1];
$price_3 = $range[2];
$ranges['range1'] = explode(' - ', $price_1);
$ranges['range2'] = explode(' - ', $price_2);
$ranges['range3'] = explode(' - ', $price_3);
} else if (4 == $count) {
$price_1 = $range[0];
$price_2 = $range[1];
$price_3 = $range[2];
$price_4 = $range[3];
$ranges['range1'] = explode(' - ', $price_1);
$ranges['range2'] = explode(' - ', $price_2);
$ranges['range3'] = explode(' - ', $price_3);
$ranges['range4'] = explode(' - ', $price_4);
}
$array = call_user_func_array('array_merge', $ranges);
sort($array);
$min = reset($array);
$max = end($array);
根据我的数组,我想要如果在数组中获取单个值,例如
Array
(
[0] => 500 - 1112
[1] => 1113 - 2224
[2] => 2225 - 4446
[3] => 4446
)
所以我想把这个数组转换成如下图,
Array
(
[0] => array(
[0] => 500
[1] => 1112
[2] => 1113
[3] => 2224
[4] => 2225
[5] => 4446
)
[1] => 4446
)
并从该数组中的Array ( [0] => array( 获取最小值和最大值。他们有什么简单的方法吗。
提前致谢
【问题讨论】:
-
为什么
2225被省略了?阐述你的逻辑 -
@RomanPerekhrest 我正在通过价格前端像四种类型的价格复选框这个数组是价格复选框值
-
再说一遍,为什么
2225被省略了? -
@RomanPerekhrest 很抱歉我错过了
2225 -
那么,所有独立的项目都应该单独放置,一个范围内的所有项目都应该分组吗?您的预期结果中的最小值和最大值在哪里?
标签: php arrays sorting multidimensional-array dynamic-arrays