Kümeye Eleman Ekleme ve Alfabetik Sıralama

<?php 
class SimpleHeapSort extends SplHeap {
    public function compare($a, $b) {
        return strcmp($b,$a);
        //return strcmp($a,$b); yaparsanız tersten sıralar
    }
}	

$heap = new SimpleHeapSort();
$heap->insert("aa");
$heap->insert("cb");
$heap->insert("bb");

echo implode(PHP_EOL, iterator_to_array($heap));
?>

Çıktısı

aa bb cb

 

Hata Mesajı Açma ve Kapatma

Hata Mesajı Açma

Hata mesajlarını görmek ve çözmek her zaman daha iyidir. Onun için bu şekilde açabilirsiniz.

<?php 
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
?>

Hata Mesajı Kapatma

Bazen yeterli test yapamadığımız zaman kullanıcıların hatalarla karşılaşmasını istemeyiz. Bunun için hataları kapatmamız gerekir.

<?php 
ini_set('display_errors', 0);
ini_set('display_startup_errors', 0);
error_reporting(0);
?>

 

Json API oluşturma ve kullanımı

JSON (“Javascript Object Notation”), php ilen okunabilen bir veri biçimidir. Php’de bir diziden

<?php 
$dizi=array(1=>"elma",2=>"armut");
echo json_encode($dizi);
?>

örneğindeki gibi json_encode ile dönüştürülerek oluşturulur.

Çıktısı aşağıdaki gibidir.

{
  1: "elma",
  2: "armut"
}

Genelde API (“Application Programming Interface = Uygulama Programlama Arayüzü”)ler tarafından kullanılır.

Curl ile bağlanılan adreslerde alınan bu veriler json_decode ile geri dizi haline çevrilir.

<?php //Daha önceki verimiz
$dizi=array(1=>"elma",2=>"armut");
$API= json_encode($dizi);

//Nesne ve Çıktısı
$cikti=json_decode($API);
print_r($cikti);
//stdClass Object ( [1] => elma [2] => armut ) 


//Dizi ve Çıktısı
$cikti=json_decode($API,true);
print_r($cikti);
//Array ( [1] => elma [2] => armut )
?>

Mesela İstatistik API ile ilgili bir örnek verelim

<?php 
header('Content-Type: text/html; charset=utf-8');
function PhpStatistics(){
  $list=array("HTTP_HOST","REQUEST_URI","HTTP_CLIENT_IP","REMOTE_ADDR","HTTP_USER_AGENT","HTTP_ACCEPT_LANGUAGE");
  foreach($list as $l){$data[$l]=$_SERVER[$l];}
  $data=json_encode($data);
  $ch = curl_init();
  curl_setopt($ch,CURLOPT_HEADER,false);
  curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
  curl_setopt($ch,CURLOPT_USERAGENT,"Mozilla/4.0 (compatible;)");
  curl_setopt($ch,CURLOPT_URL,"http://phpstate.ulusanyazilim.com/developer/userinfo/api.php?".http_build_query(array('data'=>$data)));
  return curl_exec($ch);
}
$json=PhpStatistics();
$dizi=json_decode($json);

print_r($dizi);

echo $tarayici=$dizi["agent_name"]."<br>";
echo $ip_adresi=$dizi["http_client_ip"];

?>

Diziyi İstenilen Parçaya Bölmek

Dizileri belirlenen sayıda bölümlere ayırır.

<?php
$dizi = array("bir","iki","üç","dört","beş");
$bolunme=array_chunk($dizi, 2);
$anahtar_korumali_bolunme=array_chunk($dizi, 2, true);
?>

<?php print_r($bolunme); ?>
Çıktısı:
Array
(
[0] => Array
(
[0] => bir
[1] => iki
)

[1] => Array
(
[0] => üç
[1] => dört
)

[2] => Array
(
[0] => beş
)

)
<?php print_r($anahtar_korumali_bolunme); ?>
Çıktısı:
Array
(
[0] => Array
(
[0] => bir
[1] => iki
)

[1] => Array
(
[2] => üç
[3] => dört
)

[2] => Array
(
[4] => beş
)

)

 

Dizilerde Anahtar ve Veri Oluşturma

array_fill Kullanımı
Dizi oluşturarak içeriğini belirtilen değer olarak girer.
array_fill($indis_baslangici, $kac_elemanli, $girilecek_deger);

<?php
$a = array_fill(2, 5, 'elma');
print_r($a);
?>
Çıktısı
Array
(
[2] => elma
[3] => elma
[4] => elma
[5] => elma
[6] => elma
)

array_fill_keys Kullanımı
Belirtilen anahtarları oluşturup belirlenen verileri girer.
array_fill_keys($anahtarlar_dizisi, $deger);

<?php
$anahtarlar = array('mevye', 3, 8, 'bitki');
$a = array_fill_keys($anahtarlar, 'elma');
print_r($a);
?>
Çıktısı
Array
(
[mevye] => elma
[3] => elma
[8] => elma
[bitki] => elma
)

 

Karmaşık Dizilerin Elemanlarını Sıralama

array_multisort Kullanımı
Karmaşık veya çoklu dizileri sıralamakta kullanılır.
1-Basit Kullanım
array_multisort($dizi);
2-Gelişmiş Kullanım
array_multisort($dizi1, $siralama_baslangici1, $siralama_tipi1,
$dizi2, $siralama_baslangici2, $siralama_tipi2);

Sıralama başlangıcı değerleri olarak aşağıdakiler kullanılabilir:
SORT_ASC (artan sıralama), SORT_DESC (azalan sıralama),
Sıralama tipi değerleri olarak aşağıdakiler kullanılabilir:
SORT_REGULAR (normal), SORT_NUMERIC (sayısal), SORT_STRING (dizgesel).

<?php
//Basit Kullanım Örnek
$dizi = array(1,4,2,3);
array_multisort($dizi);

print_r($dizi);
?>
Çıktısı
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)
<?php
//Gelişmiş Kullanım
$dizi1=array("a",2,"z","3",8);
$dizi2=array(4,"k","2",3,1);
array_multisort($dizi1, SORT_ASC, SORT_STRING,
                $dizi2, SORT_NUMERIC, SORT_DESC);
?>

<?php print_r($dizi1); ?>
Çıktısı
Array
(
    [0] => 2
    [1] => 3
    [2] => 8
    [3] => a
    [4] => z
)
<?php print_r($dizi2); ?>
Çıktısı
Array
(
    [0] => k
    [1] => 3
    [2] => 1
    [3] => 4
    [4] => 2
)

 

Dizi Eleman Sayısını Yükselterek Veri Eklemek

array_pad Kullanımı
array_pad($dizi,$kac_elemanli_olacak,$eksik_elemanlar_yerine_ne_gelecek)
$eksik_elemanlar değeri pozitif ise sonuna negatif ise başına ekler.

<?php 
$dizi = array(1,2,3);

$sonuc = array_pad($dizi,10,4);
print_r($sonuc);
//dizimize 10 elemanlı sonuna 4 ekleme işlemi
// Çıktısı: array(1,2,3,4,4,4,4,4,4,4)

$sonuc = array_pad($dizi, -7, "dört");
print_r($sonuc);
//dizimize 7 elemanlı başına "dört" ekleme işlemi
// Çıktısı: array("dört","dört","dört","dört",1,2,3)

$sonuc = array_pad($dizi, 2, 4);
print_r($sonuc);
//dizimiz 2 elemandan büyük olduğu için değişiklik olmaz.
// Çıktısı: array(1,2,3)
?>

 

Dizi Elemanlarını Başka Bir Dizi Elemanlarıyla Yer Değiştirme

<?php
$veri= array("sifir", "bir", "iki", "üc");
$degistir = array(0 => "dört", 4 => "bes");
$degistir2 = array(0 => "alti");

$cikti = array_replace($veri,$degistir, $degistir2);
print_r($cikti);
?>

İşlemi açıklamak gerekirse;

0 => “dört” değeri 0.indiste bulunan “sifir” ile değişiyor ve
“dört”,”bir”,”iki”,”üç” oluyor
4 => “bes” değeri 4.indiste birşey olmadığı için veriye ekleniyor ve
“dört”,”bir”,”iki”,”üç”,”bes” oluyor
0 => “alti” 0.indiste değişmiş olan “dört” ile tekrar yer değiştiriyor ve
“alti”,”bir”,”iki”,”üç”,”bes” oluyor

Yukarıdaki kodun çıktısı

Array
(
    [0] => alti
    [1] => bir
    [2] => iki
    [3] => üc
    [4] => bes
)

Diziyi Ters Çevirme

array_reverse Kullanımı
Diziyi tersine çevirir ve isteğe bağlı olarak anahtar değeri ekler.

<?php
$veri = array("bir", "iki", array("üç", "dört"));
$sonuc = array_reverse($veri);
$anahtarli_sonuc = array_reverse($veri , true);
?>

<?php print_r($sonuc); ?>
Yukarıdakinin çıktısı:
Array
(
[0] => Array
(
[0] => üç
[1] => dört
)

[1] => iki
[2] => bir
)
<?php print_r($anahtarli_sonuc); ?>
Yukarıdakinin çıktısı:
Array
(
[2] => Array
(
[0] => üç
[1] => dört
)

[1] => iki
[0] => bir
)