Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.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 为什么数组中的逗号是字符串?_Php_Arrays_String - Fatal编程技术网

Php 为什么数组中的逗号是字符串?

Php 为什么数组中的逗号是字符串?,php,arrays,string,Php,Arrays,String,这就是我想做的: 1-我有一个带字符串的数组 $photographer_array = "'Alberto Korda', 'Annie Leibowitz', 'Ansel Adams'"; 2-我正在尝试用该字符串填充数组 array($photographer_array); 它所做的是创建一个包含所有逗号的单个条目的数组。为什么它将逗号作为字符串读取?我是否可以让它不将逗号作为字符串读取,而是使用它们来分隔数组中的值?如果您可以访问PHP>=5.3.0,则可以使用,它将逗号分隔的字

这就是我想做的:

1-我有一个带字符串的数组

$photographer_array = "'Alberto Korda', 'Annie Leibowitz', 'Ansel Adams'";
2-我正在尝试用该字符串填充数组

array($photographer_array);

它所做的是创建一个包含所有逗号的单个条目的数组。为什么它将逗号作为字符串读取?我是否可以让它不将逗号作为字符串读取,而是使用它们来分隔数组中的值?

如果您可以访问PHP>=5.3.0,则可以使用,它将逗号分隔的字符串解析为数组。

如果您可以访问PHP>=5.3.0,则可以使用,它将逗号分隔的字符串解析为一个数组。

Explode()
就是您需要的

Explode()
是您所需要的


这是因为
$摄影家数组
是一个字符串,使用
数组($摄影家数组)
只需将字符串放入数组即可

也许你想做:

$photographer_array = explode(',', "'Alberto Korda', 'Annie Leibowitz', 'Ansel Adams'");
这会给你

array(3) {
  [0]=>
  string(15) "'Alberto Korda'"
  [1]=>
  string(18) " 'Annie Leibowitz'"
  [2]=>
  string(14) " 'Ansel Adams'"
}
或者你想要:

$photographer_array = array('Alberto Korda', 'Annie Leibowitz', 'Ansel Adams');
// ...
编辑:

关于您发布的代码-以下内容将为您提供一组
$摄影师行['摄影师姓名]

// ...
$photographer_array = array();
while($photographer_row = $result->fetch_assoc()) {
    $photographer_array[] = $photographer_row['photographer_name'];
}

这是因为
$摄影家数组
是一个字符串,使用
数组($摄影家数组)
只需将字符串放入数组即可

也许你想做:

$photographer_array = explode(',', "'Alberto Korda', 'Annie Leibowitz', 'Ansel Adams'");
这会给你

array(3) {
  [0]=>
  string(15) "'Alberto Korda'"
  [1]=>
  string(18) " 'Annie Leibowitz'"
  [2]=>
  string(14) " 'Ansel Adams'"
}
或者你想要:

$photographer_array = array('Alberto Korda', 'Annie Leibowitz', 'Ansel Adams');
// ...
编辑:

关于您发布的代码-以下内容将为您提供一组
$摄影师行['摄影师姓名]

// ...
$photographer_array = array();
while($photographer_row = $result->fetch_assoc()) {
    $photographer_array[] = $photographer_row['photographer_name'];
}

我实际上是在使用查询中的值创建一个数组,以便您知道我为什么这样做。这是我用来创建在数组中使用的字符串的代码

$sql = "SELECT photographers.photographer_name
        FROM photographers
        ORDER BY photographer_name ASC
        LIMIT 3";

$result = $conn->query($sql) or die(mysqli_error());

$photographer_array = '';

while($photographer_row = $result->fetch_assoc()) {
$photographer_array .= "'" . $photographer_row['photographer_name'] . "', ";
}

$photographer_array = rtrim($photographer_array, ", ");

array($photographer_array);

我实际上是在使用查询中的值创建一个数组,以便您知道我为什么这样做。这是我用来创建在数组中使用的字符串的代码

$sql = "SELECT photographers.photographer_name
        FROM photographers
        ORDER BY photographer_name ASC
        LIMIT 3";

$result = $conn->query($sql) or die(mysqli_error());

$photographer_array = '';

while($photographer_row = $result->fetch_assoc()) {
$photographer_array .= "'" . $photographer_row['photographer_name'] . "', ";
}

$photographer_array = rtrim($photographer_array, ", ");

array($photographer_array);

很抱歉这么说,但您不能以这种方式填充数组,因为字符串通常不会被解析和执行。你所能做的就是:

$photographer_array = array('Alberto Korda', 'Annie Leibowitz', 'Ansel Adams');
或此(编辑:使其适应您的查询代码):


附言:你只是喜欢长变量名,不是吗?;)

很抱歉这么说,但您不能以这种方式填充数组,因为字符串通常不会被解析和执行。你所能做的就是:

$photographer_array = array('Alberto Korda', 'Annie Leibowitz', 'Ansel Adams');
或此(编辑:使其适应您的查询代码):


附言:你只是喜欢长变量名,不是吗?;)

它将字符串作为字符串读取,因为您用引号(“)将其括起来。如果要正确执行,请尝试:

$array=array('Alberto Korda','Annie Leibowitz','Ansel Adams');

或:

$string=“阿尔贝托·科尔达、安妮·莱博维茨、安塞尔·亚当斯”;
$arr=分解(“,”,$string);

它将字符串作为字符串读取,因为您将其括在引号(“)中。如果您想正确操作,请尝试:

$array=array('Alberto Korda','Annie Leibowitz','Ansel Adams')

或:

$string=“阿尔贝托·科尔达、安妮·莱博维茨、安塞尔·亚当斯”;
$arr=分解(“,”,$string);

您会注意到变量
$raray
被设置为一个字符串(其值是双引号之间的所有值)。php中的数组函数接受由逗号分隔的对象列表。虽然在
$raray
变量中有逗号,但它们被认为是字符串中的字符,而不是实际的分隔符,因此您实际上只是创建了一个数组,其中只有一个值恰好是字符串。您可能需要的是以下内容:

$photographer_array = array('Alberto Korda', 'Annie Leibowitz', 'Ansel Adams');

您会注意到变量
$raray
被设置为一个字符串(其值是双引号之间的所有值)。php中的数组函数接受由逗号分隔的对象列表。虽然在
$raray
变量中有逗号,但它们被认为是字符串中的字符,而不是实际的分隔符,因此您实际上只是创建了一个数组,其中只有一个值恰好是字符串。您可能需要的是以下内容:

$photographer_array = array('Alberto Korda', 'Annie Leibowitz', 'Ansel Adams');

如果需要字符串来生成数组,请使用:

$Photogrator_array=“'Alberto Korda'、'Annie Leibowitz'、'Ansel Adams'”


使用后,如果需要字符串来使用数组,请执行以下操作:

$Photogrator_array=“'Alberto Korda'、'Annie Leibowitz'、'Ansel Adams'”


在使用
$myArray

之后,在这种情况下,只需使用我的第二种方法。这不会改变任何事情
$CODER_数组
是一个字符串,句点。为什么不将值推入数组,而不是将它们连接到字符串中呢?你知道,PHP不是强类型的,但这并不意味着它可以在看起来像写出来的数组和数组的字符串之间进行动态转换。诺德,这是Franz的第二种方法,我现在已经应用了它。而($摄影师行=$result->fetch\u assoc()){$摄影师行[]=$摄影师行['摄影师名];}在这种情况下,只需使用我的第二种方法。这不会改变任何事情
$CODER_数组
是一个字符串,句点。为什么不将值推入数组,而不是将它们连接到字符串中呢?你知道,PHP不是强类型的,但这并不意味着它可以在看起来像写出来的数组和数组的字符串之间进行动态转换。诺德,这是Franz的第二种方法,我现在已经应用了它。虽然($摄影家行=$result->fetch\u assoc()){$摄影家数组[]=$摄影家行['摄影家名称]];}如果值本身包含逗号,这将以痛苦告终。对于Chris真正想要的也不是正确的,虽然你显然不知道…如果值本身包含逗号,那将以痛苦告终。对于Chris真正想要的也不是正确的事情,尽管你显然不知道…
str