PHP数组两个值并调用一对


PHP array two values and call a pair

我有这样的东西:

host1 | port1
host2 | port2
host3 | port3
host4 | port4

现在,我需要将对插入到数组中,以便在循环中使用它们:

尝试遍历数组

中的一个值
$hosts  = array('host1','host2','host3'); 
foreach ($hosts as $host) {
   echo $host;
}

我如何添加对数组,所以我可以调用说host它输出主机和端口?

您可以这样创建数组,为每个主机创建命名密钥:

$hosts = array(
    'host1' => 'port1',
    'host2' => 'port2',
    'host3' => 'port3'
);

(例1:http://www.php.net/manual/en/function.array.php)

然后可以像这样遍历数组以获取数组的键和值:

foreach($hosts as $host => $port){
    echo 'This is the ' . $host;
    echo 'This is the ' . $port;
}

(http://www.php.net/manual/en/control-structures.foreach.php)

可以使用多维数组。像这样

$data= array
  (
  array("host1","yourport1"),
  array("host2","yourport2"),
  array("host3","yourport3"),
  );

,可以像这样访问

echo "Host: ". $data[0][0]." Port: ".$data[0][1];

您可以将数组添加到数组中,从而得到多维数组:

$hosts = array(array('host1', 'port1'), array('host2', 'port2'));

快捷方式:

// also You can define it as string directly, but I think You have a file :)
foreach(explode(PHP_EOL,file_get_contents('myIP.txt')) as $line){
     $hosts[explode(' | ',$line)[0]] = explode(' | ',$line)[1];
}
var_dump($hosts); 
// You will have pairs host1 => port1, host2=>port2, etc

有更多的方法与array_walk,但我懒得读关于array_walk的文档。