这就是我想要做的事情:
1 - 我有一个带字符串的数组。
$photographer_array = "'Alberto Korda', 'Annie Leibowitz', 'Ansel Adams'";
2 - 我正在尝试使用该字符串填充数组。
array($photographer_array);
它正在做的是创建一个包含所有逗号的单个条目的数组。为什么它将逗号作为字符串读取?无论如何,我可以让它不是作为字符串读取逗号,而是使用它们来分隔数组中的值?
答案 0 :(得分:6)
很抱歉这样说,但是你不能以这种方式填充数组,因为字符串通常不会被解析和执行。你所能做的就是:
$photographer_array = array('Alberto Korda', 'Annie Leibowitz', 'Ansel Adams');
或者这个(编辑:将其改编为您的查询代码):
$photographer_array = array();
while ($photographer_row = $result->fetch_assoc()) {
$photographer_array[] = $photographer_row['photographer_name'];
}
P.S。:你只是喜欢长变量名,不是吗? ;)
答案 1 :(得分:3)
这是因为$photographer_array
是一个字符串,使用array($photographer_array)
只需将字符串放入数组。
也许你想这样做:
$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_row['photographer_name']
:
// ...
$photographer_array = array();
while($photographer_row = $result->fetch_assoc()) {
$photographer_array[] = $photographer_row['photographer_name'];
}
答案 2 :(得分:1)
我实际上是使用查询中的值创建一个数组,所以你知道我为什么这样做。这是我用来创建在我的数组中使用的字符串的代码。
$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);
答案 3 :(得分:1)
它将字符串作为字符串读取,因为您将其括在引号(“)中。如果您想要正确执行,请尝试:
$array = array('Alberto Korda', 'Annie Leibowitz', 'Ansel Adams');
或者:
$string = "Alberto Korda, Annie Leibowitz, Ansel Adams";
$arr = explode(',', $string);
答案 4 :(得分:1)
你会注意到变量$photographer_array
被设置为单个字符串(其值是双引号之间的所有内容)。 php中的数组函数接受逗号分隔的对象列表。虽然你的$photographer_array
变量中有逗号,但它们被认为是字符串中的字符而不是实际的分隔符,所以你真的只是创建一个只有一个恰好是字符串的值的数组。你可能想要的是以下内容:
$photographer_array = array('Alberto Korda', 'Annie Leibowitz', 'Ansel Adams');
答案 5 :(得分:1)
如果你需要一个字符串来使用数组:
$ photographer_array =“'Alberto Korda','Annie Leibowitz','安塞尔亚当斯'”;
eval("\$myArray = array(" . $photographer_array . ");");
使用后$myArray
答案 6 :(得分:0)
如果您可以访问PHP> = 5.3.0,那么您可以使用str_getcsv
,它将逗号分隔的字符串解析为数组。
答案 7 :(得分:0)
Explode()
正是您所需要的......