[英]split array values when there is a comma
我能够将字符串拆分为数组
$array = preg_split("/[\s]*[,][\s]*/", $category);
RESULT
Array ( [0] => jquery[1] => bla[2] => bla);
但是现在我有一个数据库,其中有一行按类别(“ cat1、2、3,..”)保存所有内容-多个记录具有相似的类别-因此,为了创建快速的“类别”菜单,我正在使用此代码码:
while ($row = mysql_fetch_array($result,MYSQL_ASSOC))
{
$category[] = $row[category];
}
$array = array_unique($category);
您可以想象结果是这样的:
数组([0] => bla1,bla2,bla3 [1] => bla6,bla4 [2] => bla11 ....);
有没有办法滑动此数组,以便(再一次)我得到滑动数组
我使用了上面的“ array_unique”方法,但没有用-尽管所有的google搜索都导致我得到相同的结果(即上述结果)
希望你能帮忙
谢谢
首先:使用explode()
函数更容易拆分字符串。
猜猜你想做什么我写了一些代码示例:
<?php
$dbRows = array("x,y,z", "a,b,c", "y,b,c");
$allCats = array();
foreach($dbRows as $row) {
$allCats = array_merge($allCats, explode(",", $row));
}
var_dump(array_unique($allCats));
/*
array(6) {
[0]=> string(1) "x"
[1]=> string(1) "y"
[2]=> string(1) "z"
[3]=> string(1) "a"
[4]=> string(1) "b"
[5]=> string(1) "c"
}
*/
因此,您可以取出所有值,并用这些值填充一个大数组,最后将其过滤掉。
我希望这是您要尝试做的。
旁注:一般而言,将需要在其上执行字符串操作的内容存储在数据库中不被视为“良好实践”。 您可能希望每列只存储一个值,以使您的工作更加轻松。
(请参阅此Stackoverflow问题: 什么是规范化(或规范化? )。
具有相同输出的上述代码的较短版本:
<?php
$dbRows = array("x,y,z", "a,b,c", "y,b,c");
$allCats = explode(",", implode(",", $dbRows));
var_dump(array_unique($allCats));
这将创建一个大字符串(“ x,y,z,a,b,c,y,b,c”)并将其拆分。 离开上面的示例,因为我猜想它更容易阅读/清晰
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.