PHP中的数组值分解

PHP中的数组值分解,php,arrays,Php,Arrays,我正在编写一个使用代理连接到服务器的脚本,遍历列表,直到找到一个可用的代理 代理列表如下所示: 127.0.0.1:8080 127.0.0.1:8080 127.0.0.1:8080 127.0.0.1:8080 127.0.0.1:8080 127.0.0.1:8080 127.0.0.1:8080 当然,它不是一个IP和一个又一个端口。现在,最初我只是想使用file()将它们全部放入一个数组中,但显然,这会留下一个包含整行值的数组 理想情况下,我想要的是一个类似 "127.0.0.1"

我正在编写一个使用代理连接到服务器的脚本,遍历列表,直到找到一个可用的代理

代理列表如下所示:

127.0.0.1:8080
127.0.0.1:8080
127.0.0.1:8080
127.0.0.1:8080
127.0.0.1:8080
127.0.0.1:8080
127.0.0.1:8080
当然,它不是一个IP和一个又一个端口。现在,最初我只是想使用
file()
将它们全部放入一个数组中,但显然,这会留下一个包含整行值的数组

理想情况下,我想要的是一个类似

"127.0.0.1" => 8080,
"127.0.0.1" => 8080,
"127.0.0.1" => 8080,
"127.0.0.1" => 8080,
"127.0.0.1" => 8080,
"127.0.0.1" => 8080,
"127.0.0.1" => 8080,
"127.0.0.1" => 8080,

但我不确定最简单(也是最有效)的方法。有什么建议吗?

在文件上循环并进行一些分析:

$path = './file.txt';

$proxies = array();
foreach(file($path, FILE_SKIP_EMPTY_LINES) as $line) {
  $proxy = trim($line);
  list($ip, $port) = explode(':', $proxy);

  $proxies[$ip] = $port;
}

var_dump($proxies);

应该注意,您的“预期”示例是无效的数组表示法,因为每个元素的键都是相同的。但我以为你是在搞格式化

在文件上循环并进行一些分析:

$path = './file.txt';

$proxies = array();
foreach(file($path, FILE_SKIP_EMPTY_LINES) as $line) {
  $proxy = trim($line);
  list($ip, $port) = explode(':', $proxy);

  $proxies[$ip] = $port;
}

var_dump($proxies);
应该注意,您的“预期”示例是无效的数组表示法,因为每个元素的键都是相同的。但我以为你是在搞格式化

使用以下代码

<?php

$data = "127.0.0.1:8080
    127.0.0.1:8080
    127.0.0.1:8080
    127.0.0.1:8080
    127.0.0.1:8080
    127.0.0.1:8080
    127.0.0.1:8080";


    $urls = explode("\n",$data);

    $new_data = array();
    foreach($urls as $url){
        if($url!=""){
            $url_parts = explode(":",$url);
            $new_data[] = array($url_parts[0]=>$url_parts[1]);
        }
    }

    print_r($new_data);




?>

使用以下代码

<?php

$data = "127.0.0.1:8080
    127.0.0.1:8080
    127.0.0.1:8080
    127.0.0.1:8080
    127.0.0.1:8080
    127.0.0.1:8080
    127.0.0.1:8080";


    $urls = explode("\n",$data);

    $new_data = array();
    foreach($urls as $url){
        if($url!=""){
            $url_parts = explode(":",$url);
            $new_data[] = array($url_parts[0]=>$url_parts[1]);
        }
    }

    print_r($new_data);




?>


您还可以将
文件\u跳过\u空行
添加到
文件()
调用中。非常感谢!看起来肯定比我要做的工作好多了。还有,我的问题真的很糟糕,以至于人们不得不投反对票吗该死。在接下来的2分钟内无法接受您的回答。您还可以将
文件\u跳过\u空行
添加到
文件()
呼叫中。非常感谢!看起来肯定比我要做的工作好多了。还有,我的问题真的很糟糕,以至于人们不得不投反对票吗该死。2分钟内无法接受您的答案。