我有一个数组。该数组分配给一个变量,但我无法只读该数组中的电子邮件。
$users = array(3) { [0]=> object(stdClass)#404 (4) { ["guid"]=> string(1) "2" ["name"]=> string(13) "xyz" ["username"]=> string(13) "xyz" ["email"]=> string(23) "xyz@gmail.com" } [1]=> object(stdClass)#405 (4) { ["guid"]=> string(3) "138" ["name"]=> string(12) "wxyz" ["username"]=> string(5) "wxyz" ["email"]=> string(21) "wxyz@gmail.com" } [2]=> object(stdClass)#406 (4) { ["guid"]=> string(3) "126" ["name"]=> string(13) "xxxx" ["username"]=> string(7) "xxxx" ["email"]=> string(17) "xxxx@gmail.com" } }
我需要这样的输出
array(3) { [0]=> string(22) "xyz@gmail.com" [1]=> string(19) "wxyz@gmail.com" [3]=> string(19) "xxxx@gmail.com"}
请给我答复。预演,非常感谢。
您可以简单地使用这里的array_walk
函数,如
$result = [];
array_walk($users,function($v,$k)use(&$result){
$result[$k] = $v->email;
});
使用array_map
$result = array_map(function($v){return $v->email;},$arr);
您可以尝试preg_grep()
仅从数组返回特定模式。
preg_grep( "your Pattern", $array);
检查下面的示例
$email_only_array = preg_grep("/^[A-z0-9_'-]+[@][A-z0-9_'-]+([.][A-z0-9_'-]+)+[A-z.]{2,4}$/", $your_array);
的例子:
// Your array
$array = array("john","wxyz","aaa@mail.com", "wxyz", "bbb@mail.com", "ccc@mail.com");
// validating the value as array
$email_only_array = preg_grep("/^[A-z0-9_'-]+[@][A-z0-9_'-]+([.][A-z0-9_'-]+)+[A-z.]{2,4}$/", $array);
// Output
print_r($email_only_array);
输出Array ( [2] => aaa@mail.com [4] => bbb@mail.com [5] => ccc@mail.com )
也参考这个,http://php.net/manual/en/function.preg-grep.php