【问题标题】:php get array values as new variable for ldapphp 获取数组值作为 ldap 的新变量
【发布时间】: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&lt;$animals;i++){ 应该是 for($i=0; $i &lt; count($animals); $i++){... 来吧伙计。
  • 旁注:or die"shit";。永远不要这样做。我知道这很有趣,我知道你会认为你会在它投入生产之前把它清理干净,但是有一段时间你没有,当你的演示出错时,你会在一个满是重要人物的房间里然后屏幕上到处都是粗俗的文字,所有人都想知道为什么以他们的名义雇用您来创建他们的软件。帮自己一个忙,写一些有意义的信息。
  • 谢谢。我是 ldap 和 php 的新手。但是好像也不管用
  • 没问题——你的输入是一个多维数组;意味着它是数组中的数组。这不是一件坏事,但会使循环变得更加困难。 如果可以,请尝试将其简化为一个简单的平面数组。这将使循环更容易。您是否可以控制此阵列,或者它是否来自您的系统外部?尝试将其发送至array([0]=&gt;dog [1]=&gt;cat)。这样,您可以使用简单的foreach ($input as $animal) { ...
  • 它是通过在 ldap 中搜索自动生成的。每个搜索结果都来自多维数组,因为根有几个我必须在其中搜索的子树。也许我认为问题在于我真的不能将数组值作为字符串存储在变量中。否则搜索功能不会失败,因为它在此循环之前运行。

标签: php arrays variables ldap


【解决方案1】:

正如滑铁卢马特所说,访问多数组是关键,我认为我假装他的建议是错误的。终于有办法了:

$filter = "(description=just animals)";
$attr = array("name");
$search = ldap_search($ds, $dn, $filter, $attr) or die("not successfull");

$info = ldap_get_entries($ds, $search) or die ("no entries");

echo '<pre>';
foreach($info as $animals => $values){

          foreach($values as $newDn) {
              for ($i = 0; $i < count($newDn); $i++) {
                  echo $newDn[$i];
                  $RaceFilter = "(objectClass=*)";
                  $justthese = array("name", "color");
                  $raceSearch = ldap_search($ds, $newDn[$i], $RaceFilter, $justthese) or die("can't search");
                  $race = ldap_get_entries($ds, $raceSearch) or die ("no entries");

                  print_r($race);

              }
          }
    }

【讨论】:

    猜你喜欢
    • 2021-09-01
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    • 2012-12-08
    相关资源
    最近更新 更多