lostyazilim
tr.link

PHP array set yardım.

14 Mesajlar 1.556 Okunma
lstbozum
tr.link

fear293 fear293 Aydınlanmış Kullanıcı
  • Üyelik 10.01.2016
  • Yaş/Cinsiyet 31 / E
  • Meslek Mühendis
  • Konum Ankara
  • Ad Soyad F** K**
  • Mesajlar 10
  • Beğeniler 1 / 1
  • Ticaret 0, (%0)
Arkadaşlar merhaba kafam bulandı artık çözemiyorum meseleyi yardım ederseniz sevinirim.
olay şu $x_coords mysqldan x değerlerini çekiyor $y_coords yine mysql dan y değerlerini çekiyor. Bunları array da birleştirmek istiyorum örnek olarak.

x=[497,498,499,500];
y=[496,497,498,499];

oluşturmak istediğim array şu şekilde;

$xy=["497"=>"496", "498"=>"497", "499"=>"498", "500"=>"499" ];

her türlü fikre açığım şimdiden teşekkürler.
 

 

O hala bir "Coder"
wmaraci
reklam

VipTema VipTema Vip Tema Web Tasarım Kullanıcı
  • Üyelik 29.06.2011
  • Yaş/Cinsiyet 37 / E
  • Meslek Vip Tema Web Tasarım A.Ş.
  • Konum Tekirdağ
  • Ad Soyad Ö** I**
  • Mesajlar 1393
  • Beğeniler 704 / 703
  • Ticaret 21, (%100)
$xy = array_merge($x, $y);
print_r($xy);

Dogru anladıysam...
 

 

fear293 fear293 Aydınlanmış Kullanıcı
  • Üyelik 10.01.2016
  • Yaş/Cinsiyet 31 / E
  • Meslek Mühendis
  • Konum Ankara
  • Ad Soyad F** K**
  • Mesajlar 10
  • Beğeniler 1 / 1
  • Ticaret 0, (%0)
malesef hocam merge array yapısındaki $x=$y kısmındaki $y leri topluyor
benim istediğim
$xy=[$x[0] => $y[0],$x[1] => $y[1],$x[2] => $y[2],$x[3] => $y[3]];
şeklinde olması
 

 

O hala bir "Coder"

VipTema VipTema Vip Tema Web Tasarım Kullanıcı
  • Üyelik 29.06.2011
  • Yaş/Cinsiyet 37 / E
  • Meslek Vip Tema Web Tasarım A.Ş.
  • Konum Tekirdağ
  • Ad Soyad Ö** I**
  • Mesajlar 1393
  • Beğeniler 704 / 703
  • Ticaret 21, (%100)
array combine ile belki birşeyler çıkarabilirsiniz hocam.
 

 

wmaraci
wmaraci

fear293 fear293 Aydınlanmış Kullanıcı
  • Üyelik 10.01.2016
  • Yaş/Cinsiyet 31 / E
  • Meslek Mühendis
  • Konum Ankara
  • Ad Soyad F** K**
  • Mesajlar 10
  • Beğeniler 1 / 1
  • Ticaret 0, (%0)
function array_combine_($keys, $values)
{
$result = array();
foreach ($keys as $i => $k) {
$result[$k][] = $values[$i];
}
array_walk($result, create_function('&$v', '$v = (count($v) == 1)? array_pop($v): $v;'));
return $result;
}


bunu denedim ama bu aynı olan $x deki değerleri tek değer olarak alıyor.
 

 

O hala bir "Coder"

VipTema VipTema Vip Tema Web Tasarım Kullanıcı
  • Üyelik 29.06.2011
  • Yaş/Cinsiyet 37 / E
  • Meslek Vip Tema Web Tasarım A.Ş.
  • Konum Tekirdağ
  • Ad Soyad Ö** I**
  • Mesajlar 1393
  • Beğeniler 704 / 703
  • Ticaret 21, (%100)
Bunlar veritabanından gelmiyo mu ki zaten, join ile birlestirsen daha iyi değil mi.
 

 

ikodev ikodev Developer Kullanıcı
  • Üyelik 08.05.2015
  • Yaş/Cinsiyet 28 / E
  • Meslek Developer
  • Konum Samsun
  • Ad Soyad İ** Ş**
  • Mesajlar 1020
  • Beğeniler 321 / 320
  • Ticaret 19, (%100)
Deneyin ;

$x = ["497", "498", "499", "500"];
$y = ["496", "497", "498", "499"];

$say = 0;
$yenidizi = array();

foreach($x as $a)
{
$yenidizi[$a] = $y[$say];
$say++;
}

print_r( $yenidizi );
?>


Çıktı ;
Array ( [497] => 496 [498] => 497 [499] => 498 [500] => 499 )
 

 

Sinan Sinan Grana Kullanıcı
  • Üyelik 18.07.2011
  • Yaş/Cinsiyet 31 / E
  • Meslek Yazılım Geliştirme Uzmanı
  • Konum İstanbul Avrupa
  • Ad Soyad S** Y**
  • Mesajlar 3509
  • Beğeniler 1321 / 1320
  • Ticaret 97, (%100)
Doğru anladıysam şu şekilde:

 

 

Sinan Sinan Grana Kullanıcı
  • Üyelik 18.07.2011
  • Yaş/Cinsiyet 31 / E
  • Meslek Yazılım Geliştirme Uzmanı
  • Konum İstanbul Avrupa
  • Ad Soyad S** Y**
  • Mesajlar 3509
  • Beğeniler 1321 / 1320
  • Ticaret 97, (%100)
Yorumlara bakmadan cevap yazmıştım. edcsmile daha önceden yazmış cevabı.
 

 

JumperTech JumperTech Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 02.07.2016
  • Yaş/Cinsiyet 39 / E
  • Meslek Webmaster
  • Konum İstanbul Avrupa
  • Ad Soyad B** O**
  • Mesajlar 1705
  • Beğeniler 820 / 523
  • Ticaret 19, (%100)

edcsmile adlı üyeden alıntı

Deneyin ;

$x = ["497", "498", "499", "500"];
$y = ["496", "497", "498", "499"];

$say = 0;
$yenidizi = array();

foreach($x as $a)
{
$yenidizi[$a] = $y[$say];
$say++;
}

print_r( $yenidizi );
?>


Çıktı ;
Array ( [497] => 496 [498] => 497 [499] => 498 [500] => 499 )


Sinan adlı üyeden alıntı

Doğru anladıysam şu şekilde:



Okan_IŞIK adlı üyeden alıntı

$xy = array_merge($x, $y);
print_r($xy);

Dogru anladıysam...


fear293 adlı üyeden alıntı

function array_combine_($keys, $values)
{
$result = array();
foreach ($keys as $i => $k) {
$result[$k][] = $values[$i];
}
array_walk($result, create_function('&$v', '$v = (count($v) == 1)? array_pop($v): $v;'));
return $result;
}


bunu denedim ama bu aynı olan $x deki değerleri tek değer olarak alıyor.





Daha kolay çözümü mevcut. :)

array_combine

$x = ["497", "498", "499", "500"];
$y = ["496", "497", "498", "499"];
print_r(array_combine($x, $y));

---------------
Çıktı


Array
(
[497] => 496
[498] => 497
[499] => 498
[500] => 499
)

 

 

wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al