相关疑难解决方法(0)

如何使用类方法作为回调函数?

如果我array_walk在类函数内部使用同一个类的另一个函数

class user
{
   public function getUserFields($userIdsArray,$fieldsArray)
   {

     if((isNonEmptyArray($userIdsArray)) && (isNonEmptyArray($fieldsArray)))
     {
         array_walk($fieldsArray, 'test_print');
     }
   }


  private function test_print($item, $key)
  {
         //replace the $item if it matches something
  }

}
Run Code Online (Sandbox Code Playgroud)

它给我以下错误 -

警告: array_walk()[function.array-walk]:无法调用 test_print()- 函数不存在于......

那么,我$this->test_print()在使用时如何指定array_walk()

php oop callback array-walk

37
推荐指数
2
解决办法
3万
查看次数

按值获取数组中元素的索引

我在PHP中有这个数组:

array(
    [0] => array( 'username' => 'user1' )
    [1] => array( 'username' => 'user2' )
)
Run Code Online (Sandbox Code Playgroud)

如果我有"用户名"字符串,我怎样才能将索引值作为数字?

例如,如果我有'user1',我怎么能得到0?

php

28
推荐指数
3
解决办法
8万
查看次数

PHP找到多维数组的数组索引键来更新数组

我试图想出一种处理可能非常大的数组的方法.我正在做的是使用facebook graph api.

因此,当用户注册我正在构建的服务时,我将他们的facebook id存储在我的服务中的表中.这样做的目的是允许注册我的服务的用户找到他们在Facebook上的朋友,并通过我的服务注册以便更容易找到彼此.

我目前正在尝试做的是获取facebook api为/me/friends数据返回的对象,并将其传递给我已经为我的数据库构建查询的函数,以获取在FB数据中找到的ID,该工作正常.虽然这一切都在进行,但我有一个只是facebook id的阵列,所以我可以在一个in_array场景中使用它们.因为我的查询只返回找到的facebook id匹配

虽然这个数据循环通过自己来创建查询,但我也更新了对象,以便在列表中每个项目包含一个以上的键/值对,"are_friends"=> false到目前为止,它一切顺利且相对较快,我有我的查询结果.我正在循环.

所以我处在一个我希望避免在循环中循环的部分.这就是它的in_array()位置.由于我创建了存储的fb id的数组,我现在可以遍历我的结果以查看是否存在匹配,并且在那种情况下我想要获取我追加的原始对象'are_friends'=>false并更改那些在该集合中匹配"true"而不是false.如果没有循环遍历结果数组循环中的原始数组,我就无法想到一个好方法.

所以我希望有人可以帮助我在没有辅助循环的情况下提出解决方案

到目前为止,该阵列以原始图像开始

Array(
    [data](
            [0] => array(
                         are_fb_friends => false
                         name => user name
                         id => 1000
                        )
            [1] => array(
                         are_fb_friends => false
                         name => user name
                         id => 2000
                        )
            [2] => array(
                         are_fb_friends => false
                         name => user name
                         id => 3000
                        )
            )
    )
Run Code Online (Sandbox Code Playgroud)

按要求

这是我目前的代码逻辑,我试图在上面描述..

public function fromFB($arr = array())
{
    $new_arr …
Run Code Online (Sandbox Code Playgroud)

php arrays facebook multidimensional-array facebook-graph-api

7
推荐指数
1
解决办法
4万
查看次数