如果我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中有这个数组:
array(
[0] => array( 'username' => 'user1' )
[1] => array( 'username' => 'user2' )
)
Run Code Online (Sandbox Code Playgroud)
如果我有"用户名"字符串,我怎样才能将索引值作为数字?
例如,如果我有'user1',我怎么能得到0?
我试图想出一种处理可能非常大的数组的方法.我正在做的是使用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