Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php in#u array()不';如果使用explode()创建数组,则无法再按预期工作_Php_Arrays_String_Explode - Fatal编程技术网

Php in#u array()不';如果使用explode()创建数组,则无法再按预期工作

Php in#u array()不';如果使用explode()创建数组,则无法再按预期工作,php,arrays,string,explode,Php,Arrays,String,Explode,首先,我将字符串更改为数组。当我尝试在该数组中搜索时,无法搜索第二个数组值。下面是我的代码 //my string $a = 'normal, admin'; //Change string to array $arr = explode(",",$a); // Search by array value dd(in_array("admin", $arr)); //got false 但是,当我尝试搜索以下内容时,它是有效的 //my string $a = 'normal, admin';

首先,我将字符串更改为数组。当我尝试在该数组中搜索时,无法搜索第二个数组值。下面是我的代码

//my string
$a = 'normal, admin';
//Change string to array
$arr = explode(",",$a);
// Search by array value
dd(in_array("admin", $arr)); //got false
但是,当我尝试搜索以下内容时,它是有效的

//my string
$a = 'normal, admin';
//Change string to array
$arr = explode(",",$a);
// Search by array value
dd(in_array("normal", $arr)); //got true

这是因为值
admin
explode()
之间有一个前导空格! 如果执行以下操作,您可以看到:

var_dump($arr);
输出:

array(2) {
  [0]=>
  string(6) "normal"
  [1]=>
  string(6) " admin"
       //^   ^ See here
}
现在要解决此问题,只需将组合应用于每个数组值,如下所示:

$arr = array_map("trim", $arr);
$arr = array('normal',' admin');

您有一个字符串数组,如下所示: 您可以选择以下字符串:

$a = 'normal, admin';
使用explode后,将出现以下任何阵列:

$arr = array_map("trim", $arr);
$arr = array('normal',' admin');
我的意思是说你在admin中有一个空格,这就是为什么不在数组中搜索admin的原因

解决方案:在使用分解之前,请使用此功能:

$newstr = str_replace(" ", "", $a);
$arr = explode(',',$newstr);

是的,第一个将不起作用,因为您可以看到,在
管理员
之前有一个额外的空间将不起作用。在检查结果之前,需要使用
修剪
数组映射
功能

$a = 'normal, admin';
//Change string to array

$arr = array_map('trim',explode(",",$a));
// Search by array value
var_dump($arr);
var_dump(in_array("admin", $arr));
输出:

array(2) { [0]=> string(6) "normal" [1]=> string(5) "admin" } bool(true)

$arr=array_amp(“trim”,$arr)
$arr=array\u map(“trim”,$arr)?这是工作。Thanks@SetKyarWaLar您可以接受其中一个答案,这将使此答案被视为已解决。谢谢。