Php 有条件地添加到数组中
我试图在IF条件下添加到数组,但它没有追加,尽管我在foreach循环中 我所拥有的不是附加到$connected,而是密钥递增: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
$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!真的很感谢这两个评论都奏效了