如何在PHP数组中定义自定义键?

Ami*_* Sa 2 php arrays

我想定义一个二维数组,如下所示:

   [40.1][John]
   [40.2][Jane]
   [40.7][Mary]       
   [40.10][Sara]    
Run Code Online (Sandbox Code Playgroud)

换句话说,我想用自定义键定义一个数组.稍后我需要使用自定义键访问数组值.例如 :

   echo(myarray[40.2]);
Run Code Online (Sandbox Code Playgroud)

我需要从XML动态生成数组,因为值来自XML文件.我想从中生成数组的XML文件如下所示:

    <rules>

<rule>
    <id>40.1</id>
    <regex><![CDATA[/(?:\)\s*when\s*\d+\s*then)/]]></regex>
</rule>
<rule>
    <id>40.2</id>
    <regex><![CDATA[/(?:"\s*(?:#|--|{))/]]></regex>
</rule>
Run Code Online (Sandbox Code Playgroud)

我应该如何创建具有上述特征的数组?

Rob*_*ert 10

您可以通过创建关联数组来轻松完成此操作

$myarray = array(
  "40.1" => "John",
  "40.2" => "Jane",
  "40.7" => "Mary",
  "40.10" => "Sara"
);
Run Code Online (Sandbox Code Playgroud)

稍后,您可以使用foreach循环遍历此数组

foreach($myarray as $key => $value) {
  echo "<p>" . $key . " = " . $value . "</p>";
}
Run Code Online (Sandbox Code Playgroud)

这将输出到屏幕

40.1 = John
40.2 = Jane
40.7 = Mary
40.10 = Sara
Run Code Online (Sandbox Code Playgroud)

创建新数组并添加项目就像这样简单

$myarray = array();
$myarray[$newkey] = $newvalue;
Run Code Online (Sandbox Code Playgroud)

对于二维数组,您可以像这样定义它们

$myarray = array();
$myarray[$key] = array();
$myarray[$key]['John'] = 'some value';
$myarray[$key]['Jane'] = 'another value';
$myarray[$key2] = array();
$myarray[$key2]['Mary']= 'yet another value';
Run Code Online (Sandbox Code Playgroud)

或者作为捷径

$myarray = array(
  $key => array(
   'John' => 'some value',
   'Jane' => 'another value',
  ),
  $key2 = array(
   'Mary' => 'yet another value'
  )
);
Run Code Online (Sandbox Code Playgroud)