如何基于函数内的foreach循环在php中编写if条件?
我是这里的新手,请求根据此函数的输出编写条件语句如何基于函数内的foreach循环在php中编写if条件?,php,Php,我是这里的新手,请求根据此函数的输出编写条件语句 $ID = '1234'; $uc = array("example1.com", "example2.com", "example3.com"); function ucQuery($ucarray, $ID){ foreach ($ucarray as $value) { $host = $value; try{
$ID = '1234';
$uc = array("example1.com", "example2.com", "example3.com");
function ucQuery($ucarray, $ID){
foreach ($ucarray as $value) {
$host = $value;
try{
include('info.php');
$response = $client->getUser(array("name" => ID))->return;
print_r($response);
}catch (Exception $e){
echo "false";
}
}
}
ucQuery($uc, $ID);
info.php具有对服务器的soapclient调用并返回响应。当我运行此命令时,我看到输出打印在页面上。因此,在3台服务器中,我希望这是1台,其余2台返回false。所有的工作到这里
我基本上被困在如何推进这一点上。例如,到目前为止
如果用户是从第一个example1.com服务器返回的,我应该运行另一个函数,并说这个用户是从这个特定的服务器返回的
如果用户不是从所有服务器返回的,我应该打印一个错误
非常感谢您的帮助。非常感谢。为什么不这样做:
$ID = '1234';
$uc = array("example1.com", "example2.com", "example3.com");
function ucQuery($ucarray, $ID){
$user_data_array=[];
foreach ($ucarray as $value) {
$host = $value;
try{
include('info.php');
$response = $client->getUser(array("name" => ID))->return;
print_r($response);
$user_data_array[$value]=$response;
}catch (Exception $e){
echo "false";
}
}
return $user_data_array;
}
$user_data_array = ucQuery($uc, $ID);
if (count($user_data_array) < count($uc)) {
// not all servers responded OK
// do whatever you need to
echo "User '$ID' was not returned from all servers";
}
foreach ($user_data_array as $server => $response){
another_function($ID, $server);
echo "User '$ID' was returned from server $server";
}
$ID='1234';
$uc=数组(“example1.com”、“example2.com”、“example3.com”);
函数ucQuery($ucarray,$ID){
$user_data_array=[];
foreach($ucarray作为$value){
$host=$value;
试一试{
包括('info.php');
$response=$client->getUser(数组(“name”=>ID))->return;
打印(回复);
$user\u data\u数组[$value]=$response;
}捕获(例外$e){
呼应“假”;
}
}
返回$user\u data\u数组;
}
$user\u data\u array=ucQuery($uc,$ID);
if(计数($user\u data\u array)$response){
另一个_函数($ID,$server);
echo“从服务器$server返回了用户'$ID'”;
}
您不应该使用
$response=$client->getUser(数组(“name”=>$ID))->返回
而不是$response=$client->getUser(数组(“name”=>ID))->返回是的,我的错。在这里发帖时,我不得不修改一些代码。它是$ID。谢谢。我认为我们无法帮助您,除非您尝试重写问题,以向我们提供有关此代码的功能和所需内容的更多信息-如果我的问题不清楚或未达到如何提问的预期,我很抱歉。谢谢。你的帮助使我工作。非常感谢。还有一个问题。如何找到该用户是否在任意两台或三台服务器中返回?你能帮我一下吗?$user\u data\u数组保存了所有成功的请求。因此,count($user\u data\u array)将为您提供成功服务器的数量。检查一下,然后做你需要做的。