基于单值数组的键值的值拆分数组

我想根据值将数组拆分为不同的数组。 这是我的数组基于单值数组的键值的值拆分数组

$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

回到顶部