Hey tüm, geri arama sonuçları olarak gelen büyük bir dizi var ve ben aşağıdakileri yapmak istiyorum:
Aynı aşağıdaki anahtarları / vals eklemek "spubid" ile dizi boyunca ve her kayıt için yürüyün: Bu durumda ana dizi üyesine "sfirst, smi, slast", $ a [0]. Yani sonuç [0] inceliğini $ bırakmak ama eklemek olacağını, gelen değerleri (hepsi aynı "spubid" beri) dizideki diğer üyelerden, sfirst smi ve slast. Ben anahtar değeri (1, 2, 3) ortak anahtar (sfirst1 => "J.", smi1 => "F", slast1 => "Kennedy") iyi olurdu ekleyerek düşünüyorum. Ben o "spubid" ile dizi () (unset) üyelerinin kalanını BIRAKMA istiyorum. İşte tüm kayıtları aynı "spubid" var sırt ve bu örnekte alıyorum dizinin basitleştirilmiş bir örnek:
Array (
[0] =>
Array (
[spubid] => A00502
[sfirst] => J.
[smi] => A.
[slast] => Doe
[1] =>
Array (
[spubid] => A00502
[sfirst] => J.
[smi] => F.
[slast] => Kennedy
[2] =>
Array (
[spubid] => A00502
[sfirst] => B.
[smi] => F.
[slast] => James
[3] =>
Array (
[spubid] => A00502
[sfirst] => S.
[smi] => M.
[slast] => Williamson
)
)
Yani özünde ben $ TUTUN istiyorum [0] ama bunun (sfirst $ anahtar, smi $ anahtar, slast $ anahtar) yeni anahtarlar => değerler eklemek ve TÜM üyeleri "sfirst, smi, slast" dan değerleri ekleme aynı "spubid" ile daha sonra tanımsız $ a [1] - [3].
Sadece benim IDEAL sonuç olacağını netleştirmek için:
Array (
[0] =>
Array (
[spubid] => A00502
[sfirst] => J.
[smi] => A.
[slast] => Doe
[sfirst1] => J.
[smi1] => F.
[slast1] => Kennedy
[sfirst2] => B.
[smi2] => F.
[slast2] => James
[sfirst3] => S.
[smi3] => M.
[slast3] => Williamson
)
)
Çoğu durumda ben "spubid" 'nin çok sayıda içerir ama yayınların% 99 bu yüzden rutin sonuçlarını temizlik ve ayrıştırma süreci çok yararlı olacak bir yazar daha var başlamak için çok daha büyük bir yelpazeye sahip olacak çok daha kolay görüntü için.
*** GÜNCELLEME
Benim örnek basitleştirilmesi üzerinde Ben şeyler belirsiz yapmış olabilir tarafından sanırım. Ben hem Chacha102 ait ve zombat tepkilerini seviyorum ama benim "ana dizi" sadece birincil anahtar olur sadece bir PubID, çok daha fazla içerir. Ben bu kaydın diğer bir çok veri korumak gerekir, o küçük bir kısmı şöyledir:
[spubid] => A00680
[bactive] => t
[bbatch_import] => t
[bincomplete] => t
[scitation_vis] => I,X
[dentered] => 2009-08-03 12:34:14.82103
[sentered_by] => pubs_batchadd.php
[drev] => 2009-08-03 12:34:14.82103
[srev_by] => pubs_batchadd.php
[bpeer_reviewed] => t
[sarticle] => A case study of bora-driven flow and density changes on the Adriatic shelf (January 1987)
.
.
.
.
.
Her arama sorgusu ile geri gelmek yaklaşık 40 sütun vardır. Aksine bu örnekler PubID ile yapmak gibi sert onları kodlama daha hem önerildiği gibi yine değişiklikler yaparken, bunları nasıl içerebilir. Yazarlar çok boyutun bir parçası olmak ile (önerilen her ikiniz gibi) bir çok-boyutlu bir dizi oluşturma gayet, öneri için size de teşekkürler.
**** GÜNCELLEME:
İşte, ben bir çözüm için üzerinde yerleşmiş ne çok basit ve iş güzel bitmiş olur. Yazarlar orada kırık bu yüzden bir çok boyutlu bir dizi oluştururken sonunda yok.
Basitleştirilmiş çözüm üzerinde:
$apubs_final = array();
$spubid = NULL;
$ipub = 0;
foreach($apubs as $arec)
{
if($spubid != $arec['spubid'])
{
$ipub++;
$apubs_final[$ipub] = $arec;
// insert UNSET statements here for author data
$iauthor = 0;
$spubid = $arec['spubid'];
}
$iauthor++;
$apubs_final[$ipub]['authors'][$iauthor]['sauthor_first'] = $arec['sfirst'];
}
Cevap herkese teşekkürler, senin yardım / çok takdir edilmektedir!