【发布时间】:2018-07-10 12:26:56
【问题描述】:
假设我有一个这样的数组:
array ([0] => array([0]=>dog [1]=>cat))
我怎样才能只获得“狗”和“猫”来将它们存储在变量中?我想用它们做进一步的搜索。好吧,我找到一个具有这些值的数组动物,取每个值来找到描述狗和猫种族的数组。
我的尝试失败了:
echo '<pre>';
foreach($result as $animals){
for($i=0;i<$animals;i++){
$find = animals[i];
$filter = "(objectClass=*)";
$show = array("race","subrace");
$animalSearch = ldap_search($ds, $find, $filter, $show) or die "...";
$animalInfos = ldap_get_entries($ds,$animalSearch) or die"shit";
print_r($animalInfos);
}
【问题讨论】:
-
你在很多地方都错过了
$。animals[i]应该是$animals[$i]... 和for($i=0;i<$animals;i++){应该是for($i=0; $i < count($animals); $i++){... 来吧伙计。 -
旁注:
or die"shit";。永远不要这样做。我知道这很有趣,我知道你会认为你会在它投入生产之前把它清理干净,但是有一段时间你没有,当你的演示出错时,你会在一个满是重要人物的房间里然后屏幕上到处都是粗俗的文字,所有人都想知道为什么以他们的名义雇用您来创建他们的软件。帮自己一个忙,写一些有意义的信息。 -
谢谢。我是 ldap 和 php 的新手。但是好像也不管用
-
没问题——你的输入是一个多维数组;意味着它是数组中的数组。这不是一件坏事,但会使循环变得更加困难。 如果可以,请尝试将其简化为一个简单的平面数组。这将使循环更容易。您是否可以控制此阵列,或者它是否来自您的系统外部?尝试将其发送至
array([0]=>dog [1]=>cat)。这样,您可以使用简单的foreach ($input as $animal) { ... -
它是通过在 ldap 中搜索自动生成的。每个搜索结果都来自多维数组,因为根有几个我必须在其中搜索的子树。也许我认为问题在于我真的不能将数组值作为字符串存储在变量中。否则搜索功能不会失败,因为它在此循环之前运行。