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组合可以替换为中间的单独一行。谢谢,非常感谢。