2010-08-14 85 views
0

我要推数组key和value,但我不能array_push key =>值,该怎么办?

$con = mysqli_connect('localhost','root','','wp') or die (mysqli_error('Error:')); 

$query = mysqli_query($con,'set names utf8')or die (mysql_error()); 
$qy = mysqli_query($con,"SELECT ID,post_title FROM wp_posts WHERE post_type='page' AND post_status='publish'")or die (mysql_error()); 
$arr = array(); 
while ($row = mysqli_fetch_array($qy)){ 
$id = "?page_id=".$row['ID']; 
$title = $row['post_title']; 
$arr[] = $id . "=>" . $title; 
array_push($arr, "$id" => "$title"); 
} 

plz帮助我..

感谢^ _^

+0

[使用array_push()以'key => object']的形式向数组添加元素的可能的重复(http://stackoverflow.com/questions/4772314/using-array-push-to-add -elements-to-an-array-in-the-form-of-key-object) – 2011-01-23 04:50:18

回答

3

这里就是我会做,而不是:

$arr = array(); 
while ($row = mysqli_fetch_assoc($qy)){ 
    $id = $row['ID']; 
    $arr[$id] = $row['post_title']; 
} 

然后当你需要打印他们:

foreach ($arr as $id => $title) { 
    echo "?page_id={$id}'>{$title}</a>"; 
    // or whatever, depends on how you want to print it 
} 

不要存放不必要的信息:在阵列(即?page_id=)。

+0

现在我可以做到了.. 非常感谢你.. ^ _^ – AboSami 2010-08-14 01:24:34

+0

非常感谢你..我会做到这一点^ _ ^ – AboSami 2010-08-14 01:39:35

2

你想干什么$arr[$id] = $title?还是你想这一点:

if (!isSet($arr[$id])) { 
    $arr[$id] = array(); 
} 
$arr[$id][] = $title; 

前者将让这个$arr包含$id=>$title。如果有多个,后者将使$arr包含$id=>array($title1,$title2,$title3)等。

+0

非常感谢你,结果是失败.. 这是结果 $ My_links = array('2'=>' Array','4'=>'Array','6'=>'Array','9'=>'Array','11'=>'Array','13'=>'Array','45 '=>'Array'); – AboSami 2010-08-14 01:26:15

+1

@AboSami:是的,如果你使用第二位代码,那*应该是结果。如果只使用'$ arr [$ id] = $ title',它不会,但是您的ID最好是唯一的! – Borealid 2010-08-14 01:29:21