Php 从数组值中查找数据库记录,并在数组中插入新的键和值

Php 从数组值中查找数据库记录,并在数组中插入新的键和值,php,mysql,database,arrays,Php,Mysql,Database,Arrays,我有一个数组,我想从数据库中添加另一个值,使用[numo]值查找记录,以下是当前数组: Array ( [0] => Array ( [numo] => 667820161009 ) [1] => Array ( [numo] => 667820112001 ) 以下是我想要实现的目标: Array ( [0] => Array

我有一个数组,我想从数据库中添加另一个值,使用[numo]值查找记录,以下是当前数组:

Array
(
    [0] => Array
        (
            [numo] => 667820161009
        )

    [1] => Array
        (
            [numo] => 667820112001
        )
以下是我想要实现的目标:

Array
(
    [0] => Array
        (
            [id] => 33
            [numo] => 667820161009
        )

    [1] => Array
        (
            [id] => 34
            [numo] => 667820112001
        )
我假定必须循环遍历数组,嵌套一个SELECT查询,然后插入一个新的键和值,但我不知道从何处开始,搜索了又搜索

非常感谢你的帮助


斯图

我不知道你的数据库(特别是这个数据来自的表)的情况下,我的猜测是:

SELECT id FROM table WHERE numo = 667820112001
以下是一些与此相关的PHP:

<?php
$array = array(
    array(
        'numo' => 667820161009
    ),
    array(
        'numo' => 667820112001
    )
);

$stmt = $pdo->prepare('SELECT id FROM table WHERE numo = :numo');
$stmt->bindColumn('id', $id);

foreach($array as &$child) {
    $stmt->execute(array(
        ':numo' => $child['numo']
    ));

    $child['id'] = ($stmt->fetch(PDO::FETCH_BOUND)) ? $id : null;

    $stmt->closeCursor();
}
?>

但是,您可以通过以下方法消除某些查询:

<?php
$array = array(
    array(
        'numo' => 667820161009
    ),
    array(
        'numo' => 667820112001
    )
);

$numos = array()
foreach($array as $child) {
    $numos[] = $child['numo'];
}

$stmt = $pdo->prepare('SELECT id FROM table WHERE numo IN ('.implode(',', $numos).')');
$array = $pdo->fetchAll();
?>

如果您形成一个
numo
值数组,则可以使用一个SQL查询来获取所有ID值

$array = array( ...);

$numos = array();
foreach( $array as $entry)
{
    $numos[] = $entry['numo'];
}

$sql = 'SELECT id, numo FROM table WHERE numo IN ( ' . implode( ', ', $numos) . ' )';
$result = mysql_query( $sql);

$array = array(); // Reset the array
while( $row = mysql_fetch_array( $result))
{
    $array[] = array(
        'id' => $row['id'],
        'numo' => $row['numo']
    );
}

yer,我理解这一部分,是的,您的select查询是正确的,但我想将id作为新的键和值插入数组。哦哦哦这看起来是肯定的,我会尝试一下,谢谢Nick。。。很快回复!!