基于单值数组的键值的值拆分数组
我想根据值将数组拆分为不同的数组。 这是我的数组基于单值数组的键值的值拆分数组
$myArray=('x'=>'europe','y'=>'europe','a'=>'USA','b'=>'USA','c'=>'Canada');
我要像下面
$newList[europe]=(x,y); $newList[USA]=(a,b);
$newLsit[Canada]=(c);
我尝试以下
foreach($myArray as $key =>$value){ $myList[$value]=$key;
}
和
foreach($myArray as $key => $value){ echo $key;
if($value=='USA')$myList['USA']=$key;
if($value=='europe')$myList['europe']=$key;
if($value=='Canada')$myList['Canada']=$key;
}
的基于价值的阵列拆分出放是一样的
Array ([europe] => y [USA] => b [Canada] => c)
我不明白这个问题可能是什么。任何帮助都非常appriciated。
回答:
如果你有更多的国家,那么,如果循环是不是一个好方法。而不是你可以使用foreach语句为每个国家创建数组。请参阅下面的代码,它可能会帮助你。
$myArray = array('x'=>'europe','y'=>'europe','a'=>'USA','b'=>'USA','c'=>'Canada'); $new_array = array();
foreach($myArray as $key=>$val)
{
$new_array[$val][] = $key;
}
print_r($new_array);
回答:
你需要使用这个
$myList = array(); foreach($myArray as $key => $value)
{
if($value=='USA') $myList['USA'][]=$key;
if($value=='europe') $myList['europe'][]=$key;
if($value=='Canada') $myList['Canada'][]=$key;
}
回答:
一个简单的方法。
$myArray= array('x'=>'europe','y'=>'europe','a'=>'USA','b'=>'USA','c'=>'Canada'); $grouped = array();
foreach ($myArray as $key => $group) {
$grouped[$group][] = $key;
}
print_r($grouped);
DEMO http://phpio.net/s/9lw
回答:
的array
不能有相同的key
多次。所以看看key
正在被最新的价值覆盖。您需要以嵌套方式保存数组。
$myArray= array('x'=>'europe','y'=>'europe','a'=>'USA','b'=>'USA','c'=>'Canada'); foreach($myArray as $key => $value) {
// Value as the key & key in sub array
$new[$value][] = $key;
}
var_dump($new);
输出
array(3) { ["europe"]=>
array(2) {
[0]=>
string(1) "x"
[1]=>
string(1) "y"
}
["USA"]=>
array(2) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
}
["Canada"]=>
array(1) {
[0]=>
string(1) "c"
}
}
回答:
您需要时存在推阵列并分配时不present-这二年即可回收任何警告。使用array_key_exists()函数检查数组中的值是否为键?
$myArray = array('x'=>'europe','y'=>'europe','a'=>'USA','b'=>'USA','c'=>'Canada'); $newList = array();
foreach($myArray as $key => $value){
if(array_key_exists($value, $newList))
array_push($newList[$value], $key);
else
$newList[$value][] = $key;
}
print_r($newList);
Online Example
以上是 基于单值数组的键值的值拆分数组 的全部内容, 来源链接: utcz.com/qa/265381.html