array_intersect (): Аргумент # 1 не является массивом? - PullRequest
1 голос
/ 14 ноября 2010

У меня заканчиваются идеи о том, что может быть не так с моим кодом.Этот конкретный класс принимает массив и сравнивает его с другим массивом, чтобы получить общие значения.Затем он предоставляет доступ к общим значениям через функцию final_post_vars_keys ().Но я получаю ошибку (в заголовке) всякий раз, когда запускаю код.

 <?php

    class PostVarsKeys {
     private $general_keys = array("name", "email", "custom phone" , "lastname" , "firstname", "fname", "lname", "phone" , "emailaddress" ,  
            "phonenumber");
     private $post_vars_keys = array();


     public function __construct($post_keys){
      $counter=0;      
      foreach($post_keys as $key => $value):
       $this->post_vars_keys[$counter++] = $key;
      endforeach;
     }

     public function final_post_vars_keys(){
      return $final_keys = array_intersect($this->general_keys, $this->post_vars_keys);
     }
    }

Ответы [ 2 ]

3 голосов
/ 14 ноября 2010

Приведите аргументы как массивы:

array_intersect((array)$this->general_keys, (array)$this->post_vars_keys);
1 голос
/ 14 ноября 2010

$counter переменная обнуляется каждый раз в цикле foreach.Вы пытались вытащить его?

...