Php 将两个值从数据库推送到一个数组

Php 将两个值从数据库推送到一个数组,php,arrays,Php,Arrays,在第6行,我将一个值从数据库推送到名为$products的数组中。现在,我想从数据库($row->image)向与$row->name匹配的同一数组提供另一个值 也许使用二维数组是有意义的,但我不知道在这种情况下如何做到这一点 $products = array(); foreach($_POST['selected_checkboxes'] as $value) { if($result = $db->query("SELECT * FROM produkte WHERE $va

在第6行,我将一个值从数据库推送到名为$products的数组中。现在,我想从数据库(
$row->image
)向与
$row->name
匹配的同一数组提供另一个值

也许使用二维数组是有意义的,但我不知道在这种情况下如何做到这一点

$products = array();
foreach($_POST['selected_checkboxes'] as $value) {
    if($result = $db->query("SELECT * FROM produkte WHERE $value = 1")){
        while($row = $result->fetch_object()) {
            if (!in_array($row->name, $products)) {
                array_push($products, $row->name);
            }
        }
    }
    else {
        array_push($products, 'error');
    }
}

结果应该会显示两个值的名称和图像,这两个值属于同一个值。

您可以这样做,假设您已经对
$row->name
$row->image
匹配逻辑进行了排序:

if (!in_array($row->name, $products)) {
   array_push( $products, array('name'=>$row->name, 'image'=>$row->image) );
}

您可以这样做,假设您已经对
$row->name
$row->image
匹配逻辑进行了排序:

if (!in_array($row->name, $products)) {
   array_push( $products, array('name'=>$row->name, 'image'=>$row->image) );
}

您可以这样尝试:

$products = array();
foreach ( $_POST['selected_checkboxes'] as $value ) {
    if ( $result = $db->query( "SELECT * FROM produkte WHERE $value = 1" ) ) {
        while ( $row = $result->fetch_object() ) {
            // if your name is unique you can do it like this,
            // if not just take $row->id as index
            if( isset( $products[$row->name] ) ) continue;
            $products[$row->name] = array( "name" => $row->name, "image" => $row->image );
        }
    } else {
        array_push( $products, 'error' );
    }
}

// if you want to have plain digits as index you can get a reindexed array
$products = array_values( $products );
然后您将得到如下数组:

array(//$products
  array(
    "name" => "productname",
    "image" => "productimage"
  )
);

您可以这样尝试:

$products = array();
foreach ( $_POST['selected_checkboxes'] as $value ) {
    if ( $result = $db->query( "SELECT * FROM produkte WHERE $value = 1" ) ) {
        while ( $row = $result->fetch_object() ) {
            // if your name is unique you can do it like this,
            // if not just take $row->id as index
            if( isset( $products[$row->name] ) ) continue;
            $products[$row->name] = array( "name" => $row->name, "image" => $row->image );
        }
    } else {
        array_push( $products, 'error' );
    }
}

// if you want to have plain digits as index you can get a reindexed array
$products = array_values( $products );
然后您将得到如下数组:

array(//$products
  array(
    "name" => "productname",
    "image" => "productimage"
  )
);

我认为如果使用stdClass对象,就可以实现这一点

$std = new stdClass();
$std->name = $row->name;
$std->image = $row->image;
array_push($products, $std);
或者,您可以将sql查询更改为

SELECT name, image FROM produkte WHERE $value = 1


我认为如果使用stdClass对象,就可以实现这一点

$std = new stdClass();
$std->name = $row->name;
$std->image = $row->image;
array_push($products, $std);
或者,您可以将sql查询更改为

SELECT name, image FROM produkte WHERE $value = 1


$row->image
中的图像是否具有与
$row->name
相同的值?您的代码是@NaijaProgrammer否,如果我将其中一个“选中的\u复选框”值更改为
1=1,则它具有另一个值;升降台--
那可能是个坏消息。你能发布输入和预期输出吗?
$row->image
中的图像是否与
$row->name
具有相同的值?你的代码是@NaijaProgrammer否,如果我将其中一个“selected_checkbox”值更改为
1=1;升降台--那么这可能是个坏消息。你能发布输入和预期输出吗?非常感谢,这正是我想要的!!非常感谢,这正是我想要的!!谢谢你,这绝对有帮助!谢谢你,这绝对有帮助!