1

抱歉,我的大脑不会处理数组、指针和 oop - 到目前为止,我设法处理了简单的 1 行“记录”类型数组和旧的结构化编程方法。

但是我现在需要在 mysql 查询之后处理一个二维表类型数组。

这是我需要做的:

  1. 获取mysql返回的数组中的记录到另一个数组,例如。

       while ( $row = @mysql_fetch_array($result_35bid, MYSQL_BOTH) )  //-- done
       {
    
  2. 复制 $row 到另一个数组;

                         $rowcopy = array();
             $rowcopy = $row;             //-- i think i have done ok
    
  3. 现在我需要找到字段名称“domname”中包含的所有特定值,并将该行/行复制到另一个数组。那我该怎么做?从我的 $rowcopy 到一个新数组。所以,我需要从字段名称 domname 中找到具有字段值“mydomain”的每一行,并将其复制到新数组 $newArray 中。

我已经尝试过了,但它失败了:

           $newArray = array();
       $newline = 0;
        for( $i = 0; $i < count($rowcopy); $i++ )
        {

            if ( $rowcopy['domname'] == 'mydomain'  )
            {
                $newline ++;

                   $newArray[$newline] = $rowcopy[$I];
                                   //-- copy this row to new array

                                   //-- i think my problem is here ??

            }

        } // end-for

    print_r($newArray);

       } // end-while

这将导致 $rowcopy 的子集包含在字段/键“domname”中具有字段值“mydomain”的所有记录/行到新的较小数组 $newArray。

[在 mysql 术语中,我需要找到包含某个域名的所有记录 - 但我需要在 php 中使用数组来执行此操作,因为这是 mysql 查询的后续执行]

任何帮助表示赞赏。

谢谢你。

4

2 回答 2

0
$result = array();
while ( $row = @mysql_fetch_array($result_35bid, MYSQL_BOTH) {
      if($row['domain'] == 'mydomain') {
            $result[] = $row;
      }
}

你会得到一个域为'mydomain'的行数组,你也可以这样做:

$result = array();
while ( $row = @mysql_fetch_array($result_35bid, MYSQL_BOTH) {
      if($row['domain'] == 'mydomain') {
            $result[$row['domain']][] = $row;
      }
}

您将获得以域名为键的数组和作为值的行数组。换句话说,您将按域名对行进行排序

PS:我认为你不需要MYSQL_BOTH。并且也不要使用 mysql_ 函数。请改用 mysqli_ 或 PDO。

于 2013-03-17T13:23:52.207 回答
0

在从数据库中检索行的部分中,您可以检查当前行是否包含您指定的内容。如果是这样,那么您可以使用 array_push()。

$result = array();
while ( $row = @mysql_fetch_array($result_35bid, MYSQL_BOTH) {
      if($row['domain'] == 'mydomain') {
            array_push($result, $row);
      }
}

有关更多详细信息,请参见PHP.net - 手册

于 2013-03-17T13:05:10.330 回答