在SQL查询之后拆分数组

时间:2010-10-31 12:46:51

标签: php

有人可以帮助我吗?

我从数据库中完成了一个直接的MySQL查询,以返回所有产品。

我使用productGroupDesc告诉我他们属于哪个公司和类别。典型的条目看起来像

公司 - 类别

因此,我想要做的是先对产品进行分类,先找出它所属的公司,然后再分类。然后只需列出它们。

有什么想法吗?

这是我到目前为止所做的:

global $__CMS_CONN__;
$sql = 'SELECT name FROM isproducts';
$arr = array();

$stmt = $__CMS_CONN__->prepare($sql);
$stmt->execute();

$listOfProducts = array();
while ( $row = $stmt->fetchObject() )
{ 
    $row->prodGroupDescList = explode(' - ',  $row->ProductGroupDescription);
    $listOfProducts[] = $row;
}

所以从这里开始,我需要帮助他们根据他们在productGroupDesc中的内容创建列表。

2 个答案:

答案 0 :(得分:0)

使用explode方法将字符串拆分为数组。

像这样。

$listOfProducts = array();
while ( $row = $stmt->fetchObject() )
{ 
    $row->prodGroupDescList = explode(' - ',  $row->ProductGroupDescription);
    $listOfProducts[] = $row;
}

现在访问公司和类别检索数组元素:

$company = $row->prodGroupDescList[0]; // Will always be 1st element
$category = $row->prodGroupDescList[1]; // Will always be 2nd element

答案 1 :(得分:0)

是不是你想要的东西?

// Define this somewhere appropriate
function addToCategorisedList( $value, $category, array &$list )
{
    if ( !array_key_exists( $category, $list ) ) {
        $list[$category] = array();
    }
    $list[$category][] = $value;
}

// Then change the while loop to something like this
$categories = array();
$companies = array();

while ( $row = $stmt->fetchOject() )
{
    $row->prodGroupDescList = explode( ' - ',  $row->ProductGroupDescription );
    addToCategorisedList( $row, $$row->prodGroupDescList[0], $companies );
    addToCategorisedList( $row, $$row->prodGroupDescList[1], $categories );
}

我没有测试过这段代码,如果有任何错误,请告诉我/更正。