Php 有条件地添加到数组中

Php 有条件地添加到数组中,php,arrays,if-statement,Php,Arrays,If Statement,我试图在IF条件下添加到数组,但它没有追加,尽管我在foreach循环中 我所拥有的不是附加到$connected,而是密钥递增: $key1 = '0'; foreach ($dataNewAndUnlock1 as $key => $val) { $stream = ssh2_exec($connection, 'ping -c 1 '. $val); stream_set_blocking($stream, true); while ($o = fgets

我试图在IF条件下添加到数组,但它没有追加,尽管我在foreach循环中

我所拥有的不是附加到$connected,而是密钥递增:

$key1 = '0';
foreach ($dataNewAndUnlock1 as $key => $val) {
    $stream = ssh2_exec($connection, 'ping -c 1 '. $val);

    stream_set_blocking($stream, true);

    while ($o = fgets($stream)) {
        $connected = array();

        if (strpos($o, 'ttl') !== false) {
            $connected[$key1] = $val;

            echo $val .' EnodeB is connected <br>';
            $key1++;
        }

        if (strpos($o, '0 received') !== false) {
            echo $val .' EnodeB NOT connected <br>';
        }
    }
}
$key1='0';
foreach($dataNewAndUnlock1为$key=>$val){
$stream=ssh2_exec($connection,'ping-c1'.$val);
流\设置\阻塞($stream,true);
而($o=fgets($stream)){
$connected=array();
if(strpos($o,'ttl')!==false){
$connected[$key1]=$val;
echo$val。'EnodeB已连接
'; $key1++; } if(strpos($o,'0已接收')!==false){ echo$val.'EnodeB未连接
'; } } }
$connnected给出了类似这样的内容,那么var_dump在末尾是空的

C:\wamp64\www\SendJason2.php:286: array (size=1) 0 => string 'XXX.XX.XXX.XXX' (length=14) C:\wamp64\www\SendJason2.php:286: array (size=1) 1 => string 'XXX.XX.XXX.XX' (length=13) C:\wamp64\www\SendJason2.php:286: array (size=1) 2 => string 'XXX.XX.XXX.XXX' (length=14) C:\wamp64\www\SendJason2.php:286: array (size=1) 3 => string 'XXX.XX.XXX.XXX' (length=14) C:\wamp64\www\SendJason2.php:286: array (size=1) 4 => string 'XXX.XX.XXX.XXX' (length=14) ... C:\wamp64\www\SendJason2.php:306: array (size=0) empty C:\wamp64\www\SendJason2.php:286: 数组(大小=1) 0=>字符串“XXX.XX.XXX.XXX”(长度=14) C:\wamp64\www\SendJason2.php:286: 数组(大小=1) 1=>字符串“XXX.XX.XXX.XX”(长度=13) C:\wamp64\www\SendJason2.php:286: 数组(大小=1) 2=>字符串“XXX.XX.XXX.XXX”(长度=14) C:\wamp64\www\SendJason2.php:286: 数组(大小=1) 3=>字符串“XXX.XX.XXX.XXX”(长度=14) C:\wamp64\www\SendJason2.php:286: 数组(大小=1) 4=>字符串“XXX.XX.XXX.XXX”(长度=14) ... C:\wamp64\www\SendJason2.php:306: 数组(大小=0) 空的
每次您的
foreach
循环迭代时,您都会使用空数组覆盖
$connected
。将
$connected
的分配移动到
foreach
循环之前

$key1 = '0';
$connected = array();
foreach ($dataNewAndUnlock1 as $key => $val) {
    ...
此外,要附加到数组,您不需要维护自己的索引,只需使用以下语法:

$connected[] = $val;

每次您的
foreach
循环迭代时,您都会使用空数组覆盖
$connected
。将
$connected
的分配移动到
foreach
循环之前

$key1 = '0';
$connected = array();
foreach ($dataNewAndUnlock1 as $key => $val) {
    ...
此外,要附加到数组,您不需要维护自己的索引,只需使用以下语法:

$connected[] = $val;

$val
是否实际将数据推出?为什么要用字符串
0
初始化
$key1
,然后使用
$key1++
?小提示:不要将代码放入
C:\wamp64\www
文件夹中。这是为WAMPServer保留的。。为您的所有项目创建一个子文件夹,或者在一个完全独立的文件夹中创建一个虚拟主机。谢谢Sean!真的很感激这两条评论都有效
$val
是否真的将数据推出?为什么要用字符串
0
初始化
$key1
,然后使用
$key1++
?注意:不要将代码放在
C:\wamp64\www
文件夹中。这是为WAMPServer保留的。。为您的所有项目创建一个子文件夹,或者在一个完全独立的文件夹中创建一个虚拟主机。谢谢Sean!真的很感谢这两个评论都奏效了