php - 有条件地添加到数组
问题描述
我正在尝试在 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>';
}
}
}
$connnected 给出了这样的东西,然后 var_dump 最后是空的
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) 空的
解决方案
$connected
每次foreach
循环迭代时,您都用一个空数组覆盖。将 to 的分配$connected
移到foreach
循环之前。
$key1 = '0';
$connected = array();
foreach ($dataNewAndUnlock1 as $key => $val) {
...
此外,要追加到数组,您不需要维护自己的索引,只需使用以下语法:
$connected[] = $val;
推荐阅读
- php - Symfony - 仅从一个 URL 将 404 重定向到自定义模板
- django - Web / 应用服务器配置 (Nginx / uWSGI / Django)
- r - ggplot2如何在单个面上叠加标记?
- c - 浮动不添加?
- jquery - 单击展开按钮和折叠按钮时如何在剑道树视图中执行“展开”和“折叠”
- node.js - nodemon + browserSync gulp 任务导致 EADDRINUSE :::3000 错误
- php - Axios 从 React 发布到 PHPmailer
- python - 如何限制函数内循环的迭代?
- c - 迭代 dfs 算法给出 sigkill 错误
- python - The Foundry Nuke – 在 QLabel 上显示动画值