PHP-将两个值分配给数组中的一个键
我需要获取以下格式的数组:PHP-将两个值分配给数组中的一个键,php,arrays,loops,key,Php,Arrays,Loops,Key,我需要获取以下格式的数组: $arr = { $domain => $PR => $OBL } 换句话说,我希望每个域充当一个键,它有两个值,PR和OBL pagerank以及分配给它的出站链接。只为一个值执行此操作很容易,我只需循环并设置:$arr[$domain]=$PR 之后,通过simple for each循环很容易提取数据。但是,为每个域存储两个值的最佳方法是什么?我以后如何循环使用它来提取数据?假设您运行的是最新的PHP 5.5.x: $arr = [ 'do
$arr = {
$domain => $PR => $OBL
}
换句话说,我希望每个域充当一个键,它有两个值,PR和OBL pagerank以及分配给它的出站链接。只为一个值执行此操作很容易,我只需循环并设置:$arr[$domain]=$PR
之后,通过simple for each循环很容易提取数据。但是,为每个域存储两个值的最佳方法是什么?我以后如何循环使用它来提取数据?假设您运行的是最新的PHP 5.5.x:
$arr = [
'domain1.tld' => [8, 2543],
'domain2.tld' => [3, 684],
];
foreach($arr as $domain => list($pr, $obl))
echo "<p>$domain has PageRank $pr and $obl outbound link(s)</p>";
或者,更兼容、更详细:
$arr = [
'domain1.tld' => ['PR' => 8, 'OBL' => 2543],
'domain2.tld' => ['PR' => 3, 'OBL' => 684],
];
foreach($arr as $domain => $properties) {
$pr = $properties['PR'];
$obl = $properties['OBL'];
echo "<p>$domain has PageRank $pr and $obl outbound link(s)</p>";
}
加上Niels Keurentjes的回答:
$arr = array(
'domain1.tld' => array(8, 2543),
'domain2.tld' => array(3, 684),
);
array_map(
function ($domain,$values){
list($pr, $obl) = $values;
echo "<p>$domain has PageRank $pr and $obl outbound link(s)</p>";
}
,array_keys($arr)
,$arr);
发布语法无效的预期输出。只需使用一个数组来存储域属性:$domain=>array$PR,$OBL。只需澄清一下:使用较旧的版本也是完全可能的,只是语法上的糖分要少一点。是的,在5.4之前的版本中,您需要将[…]声明替换为array…,并且foreach…list组合可以替换为中间的单独一行。谢谢,非常感谢。