Php 将数据存储在数组中并搜索项目
我连接到Php 将数据存储在数组中并搜索项目,php,Php,我连接到Php中的远程SSH设备。 我运行了一个命令,输出太长。 因此,我搜索并理解我可以通过以下方式保存它: $my_array= explode("\n", $this->ssh->exec('some command')); 没问题,现在我可以通过以下方式显示整个输出: echo print_r($my_array); 输出类似于: Array ( [0] => ath4_auth_mode=disabled [1] => wl_mac_deny= [2]
Php
中的远程SSH
设备。
我运行了一个命令,输出太长。
因此,我搜索并理解我可以通过以下方式保存它:
$my_array= explode("\n", $this->ssh->exec('some command'));
没问题,现在我可以通过以下方式显示整个输出:
echo print_r($my_array);
输出类似于:
Array ( [0] => ath4_auth_mode=disabled [1] => wl_mac_deny= [2] => filter_dport_grp3= [3] => ses_script= [4] => http_redirect_port=3128 [5] => oet5_en=0 [6] => filter_dport_grp4= [7] => oet2_fragment=0 [8] =>
当我跑步时:
echo count($my_array);
它向我显示:
2200
这是真的,现在我想搜索一个特定的文本,比如name=
,我想要数组中等于后的值,我尝试了以下方法:
$search_result = array_search("name=", $my_array);
但没有机会,甚至尝试过:
foreach($my_array as $cat) {
$cat = trim($cat);
if($cat == "name=") {
echo "hoola !";
} else {
echo ':-(';
}
同样没有机会,我如何搜索名称=
并获得=
之后的值?我想在您的数组中,值不完全是名称=
。例如,它可以是name=something
。在这种情况下,数组中的==
和都找不到它。您需要使用strpos
:
foreach($my_array as $cat) {
$cat = trim($cat);
if(strpos($cat, "name=") === 0) {
echo "hoola !", $cat;
// add a break if value found so as not to search other elements
break;
} else {
echo ':-(';
}
}
我使用了==
和0
,因为name=
必须在$cat
的开头,我甚至尝试过,没有机会,我尝试过:如果(在_数组(“name=,$my_数组”){echo'就这样了}否则{echo'找不到!'}
你能打印你的数组并检查name=
是否存在吗?是的,我做了。它就在那里:[1037]=>name=ioio
如果是这样,那么数组中的就不起作用了。下面的答案就是你需要的。以下是没有任何机会,现在它显示:(没有任何机会,现在现在它显示:)下面下面下面下面下面下面下面下面下面下面下面下面下面下面下面下面下面下面下面下面显示::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::(:-)(:-)(:-)(:-)(:-)(:-)(:-)(:-)(:-)(:-)(:-)(:-)(:-)(:-)(:-)(:-)(:-)(:-)(:-)(:-)(:-)(:-(:-):-(:-)(:-):-(:-)(:-):::-)(:::-)::-(:::-):::-(::-(:-)(:-)(:-)(:-)(:-)(:-)(:-)(:-)(:-)(:-(:-)(:-)(:-)(:-(:-)(
)如果name
是1037个元素,那么显然它就在这个代码的深处。不要重复:-(
并查看结果。我刚刚将===
0更改为!==false
,它成功了!如果找不到针,则返回false。-strpos文档: