1

嗨,每个人我都有一个数组有这个问题,我是这样开始的......

$name =  array($_POST['names']);
$nameId = array();
$query = mysql_query("SELECT id FROM types WHERE find_in_set (name, '$name')");
while($row = mysql_fetch_assoc($query)){
        $nameId[] = array('ids' => $row['id'] );

    }

这给了我这样的数组..

$名称:

array('0'=>'name1,name2,name3')

$名称:

array('0'=>array('ids'=>'61'), '1'=>array('ids'=>'6'), '2'=>array('ids'=>'1'))

我怎样才能把它变成这样的字符串/形式..

array('0'=>'61,6,1')

这个想法是将ID保存到数据库中。

或者从表单中获取名称的更好更有效的方法是将它们与数据库进行比较并取回 id 以将它们保存到数据库中?

提前谢谢了。

4

6 回答 6

3

将您的作业更改为:

$nameId[] = $row['id'];
于 2013-03-13T10:27:22.713 回答
2
$name =  array(name1,name2,name3);
$nameId = array();
$query = mysql_query("SELECT id FROM types WHERE find_in_set (name, '$name')");
while($row = mysql_fetch_assoc($query)){
//below line changed
    $nameId[] =  $row['id'] ;

}
 $string = implode(',',$nameId);
于 2013-03-13T10:29:32.693 回答
0

试试这个 :

$array  = array(0=>array(0=>'61'),1=>array(0=>'6'),2=>array(0=>'1'));
$result = implode(",",call_user_func_array('array_merge', $array));

请注意:这里都是数字键,所以将您的代码更改为:

$nameId[] = array($row['id'] );'ids',从这里删除密钥

输出 :

61,6,1
于 2013-03-13T10:29:39.947 回答
0

那就是我所想的

$nameId[] = $row['id'];
$stringId = implode(',',$name);
于 2013-03-13T10:30:38.353 回答
0

使用以下函数将遍历数组并找到 ids 键并将其合并到其他数组中,然后当您调用此函数时它将加载它。

function CustomFindJoinArray( $needly, $array )
{
    $results = array();
    foreach ( $array as $key => $value )
    {
        if ( is_array( $value ) )
        {
            $results = array_merge($results, foo( $needly, $value ));
        }
        else if ( $key == $needly )
        {
            $results[] = $value;
        }
    }
    return $results;
}
echo implode( ",", CustomFindJoinArray( "ids", $your_array ) );

$your_array会在哪里array('0'=>array('ids'=>'61'), '1'=>array('ids'=>'6'), '2'=>array('ids'=>'1'))

或者更简单

foreach ($your_array as $key => $ids) {
    $newArray[] = $array[$key]["ids"];
}

$string = implode(',', $newArray);
于 2013-03-13T10:31:13.757 回答
0
$ids = array();
foreach($nameId as $curr) {
  $ids[] = $curr['ids'];
}
$str = "(".implode(",",$ids).")";
于 2013-03-13T10:33:57.143 回答