PHP SQL sonuçlarını biçimlendirmek için hızlı yolu

2 Cevap php

Ne gibi (My) SQL sonucu dönüştürmek için PHP (iyi performans) yolu hızlı bulunuyor:

array(
 array('user_name' => 'john', 'tag_id' => 1, 'tag_name' => 'foo'),
 array('user_name' => 'john', 'tag_id' => 2, 'tag_name' => 'bar'),
 array('user_name' => 'rick', 'tag_id' => 3, 'tag_name' => 'foobar'),
 array('user_name' => 'rick', 'tag_id' => 2, 'tag_name' => 'bar')
);

Kullanımı daha kolay içine:

array(
 array('name' => 'john', 'tags' => array(
  array('id' => 1, 'name' => 'foo'),
  array('id' => 2, 'name' => 'bar')
 ),
 array('name' => 'rick', 'tags' => array(
  array('id' => 3, 'name' => 'foobar'),
  array('id' => 2, 'name' => 'bar')
 )
);

Ya da zaten bunu yapan bir kütüphane ilave kararlılık ve tam ORM performans isabet olmadan, var mı?

Teşekkürler

2 Cevap

Bu deneyin:

$data = array(
    array('user_name' => 'john', 'tag_id' => 1, 'tag_name' => 'foo'),
    array('user_name' => 'john', 'tag_id' => 2, 'tag_name' => 'bar'),
    array('user_name' => 'rick', 'tag_id' => 3, 'tag_name' => 'foobar'),
    array('user_name' => 'rick', 'tag_id' => 2, 'tag_name' => 'bar')
);
$final = array();
foreach ($data as $item) {
    if (!isset($final[$item['user_name']])) {
    	$final[$item['user_name']] = array(
    		'name' => $item['user_name'],
    		'tags' => array()
    	);
    }
    $final[$item['user_name']]['tags'][] = array(
    	'id'   => $item['tag_id'],
    	'name' => $item['tag_name']
    );
}
$final = array_values($final);

at ezSQL http://www.woyano.com/jv/ezsql istediğini yapmalıdır. Bunu kullanan bir proje üzerinde aldım ve o çok güzel araya görünür. Kendimi metale biraz daha yakın olmayı tercih, ama uzakta soyut istiyorsanız o zaman benim deneyim oldukça sağlam görünüyor.