假设我有一个数组
$array = array(
'username' => "username",
'location' => "location",
'other' => "other");
此数组可以保存许多用户的数据,因此每个“用户名”,“位置”和“其他”字段可能有不同的值。如何使用in_array()或其他函数来确定数组中是否存在特定的用户名?因为如果用户拥有像“nyc”这样的用户名和“nyc”的位置,我会这样做
in_array("nyc", $array);
应该如何处理这样的事情?
谢谢。
答案 0 :(得分:2)
为了实现我认为你想要的东西,你可以制作一组具有相同键的关联数组。
<?php
// This syntax will work only on PHP 5.4
$a=[["name"=>"john","age"=>25],["name"=>"philip","age"=>110]];
print_r(array_filter($a, function($item) {return $item["name"] === "john"; }));
?>
输出:
Array
(
[0] => Array
(
[name] => john
[age] => 25
)
)
如果你只是想知道一个名叫John的人是否在列表中,你可以在返回的数组上使用sizeof / count。
这将允许您拥有任意数量的重复项,并且您无需指定任何键。查看函数:array_filter,array_reduce,array_map。通过所有这些,您可以使用上面的示例中的闭包来处理列表。
您也可以拥有对象,而不是在数组中使用关联数组。对象更重量级,需要初始化和东西,所以将它们用于微小的静态(硬编码)列表是怪诞的。但是当数据结构增长并且您希望确保每个列表项都具有某个属性时,它们可能会派上用场(类的构造函数可以确保所有内容都已初始化)。但好处是过滤,减少和映射仍然有效。然后“$ item”将成为您的对象。
答案 1 :(得分:0)
$users = array( 'user_id' => array('username' => "username",
'location' => "location",
'other' => "other");
user_id是他们的NUMBER user_id
然后你再拨打$ users ['####'] ['username'];
IE:
$users = array( '1' => array('username' => 'Jim',
'location' => 'Florida',
'other' => "other"),
'2' => array('username' => 'Jane',
'location' => 'Maryland',
'other' => "Grapes"));
然后使用array_keys()搜索其user_id