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'] );

    }

これは私にこのような配列を与えます..

$name:

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

$name:

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
$ids = array();
foreach($nameId as $curr) {
  $ids[] = $curr['ids'];
}
$str = "(".implode(",",$ids).")";
于 2013-03-13T10:33:57.143 に答える
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

これを試して :

$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 に答える