[英]php array and foreach / array unique / array push key=> value
我在php中有一個循環返回此結果:
我想創建一個像這樣的數組:
$myarray=array('name 1' =>'value x, value y','name 2'=>'value y',name 3=>'value x')
因此,有了這個數組,我可以像這樣操作它:
foreach($myarray as $key=>$item){
echo $key.'=>'.$item;
}
結果:
我怎樣才能做到這一點?
它看起來很糟糕,因為php沒有本地列表。 當鍵可以相同時,您不應使用哈希映射(關聯數組)。 我尚未測試以下內容,但類似以下內容:
<?
$arr = Array(
Array('n1',Array('x','y'))
, Array('n2',Array('x'))
, Array('n3',Array('y'))
);
foreach($arr as $value){
list($name,$values) = $value;
foreach($values as $value){
echo "$name -> $value".PHP_EOL;
}
}
?>
為輸出創建一個空數組,然后為每個輸入值檢查鍵是否已經存在。
$result = array();
foreach($myarray AS $key=>$value) {
if(array_key_exists($key, $result)) {
// if the key exists in $result, add the value to the existing value
$result[$key] += ', ' + $value;
} else {
// otherwise, just create it
$result[$key] = $value;
}
}
$array2 = array();
foreach ( $original_array as $key => $value )
{
// Edited to address @adam's comment
if ( !array_key_exists( $key, $array2 ) ) $array2[$key] = array();
$array2[$key][] = $value;
}
foreach ( $array2 as $key => $values )
{
$values_str = join( ', ', array_unique( $values ) );
print "$key => $values_str";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.