2015-01-15 4 views
0

나는 내가 작성한 게시물에 대한 정보가 들어있는 배열을 가지고있다.다차원 연관 배열에서 임의 값을 검색하려면 어떻게해야합니까?

$DexArray = array(

      array(
      'url'  => "http://i.imgur.com/ObXLdd6C.jpg", 
      'headline' => "Dronningens Nytårstale", 
      'subline' => "Tallene bag talen og årets spilforslag", 
      'href'  => "nytaarstale.php", 
      'postedby' => "kris", 
      'postedurl' => "https://www.facebook.com/dataanalyticsdk", 
      'dato'  => "21. december, 2014" 
      ), 

      array(
      'url'  => "http://i.imgur.com/sxddhOe.jpg", 
      'headline' => "Endless Jewelry", 
      'subline' => "Are there really endless possibilities?", 
      'href'  => "endless.php", 
      'postedby' => "Nikolaj Thulstrup", 
      'postedurl' => "kris", 
      'dato'  => "10. december, 2014" 
      ), 

다차원 연관 배열에 저장됩니다. 배열에서 임의의 'href'값을 검색하고이를 변수로 저장하려고합니다.

array_rand 함수를 사용해 보았지만 작동하지 않습니다.

$k = array_rand($DexArray); 
$v = $array[$k]['href']; 

난라는 오류 메시지가 정의되지 않은 변수를이 라인 어레이 "$ 절 = $ 배열 [$ K] [ 'HREF'];"

해결 방법이 있습니까?

+2

오류가 명확합니다. '$ array'를 어딘가에 정의 했습니까? – Daan

답변

0

그것은해야

$k = array_rand($DexArray); 
$v = $DexArray[$k]['href']; 
0

다음 작업 디버그입니다 :) link 가 있던 당신의 꼬추에 , 느린. $array은 처음부터 정의 된 적이 없으므로 오류가 무엇을 의미하는지 알려줍니다.

0

코드를 실행하면 다차원 PHP 배열의 임의 값이 반환됩니다.

<?php 
      $filter_field = array(); 
      $original_items = array(
      array(1, 'stuff1', 'info1', 'response1', 'info1', 'response1'), array(2, 'stuff2', 'info2', 'response2', 'info2', 'response2'), array(3, 'stuff3', 'info3', 'response3', 'info3', 'response3'), array(4, 'stuff4', 'info4', 'response4', 'info4', 'response4')); 

      for ($x = 0; $x < sizeof($original_items); $x++) { 
       array_push($filter_field, $original_items[$x][0]); 
      } 

      shuffle($filter_field); 

      echo "<br/><br/><br/>"; 

      for ($x = 0; $x < sizeof($original_items); $x++) { 
      $k = $filter_field[$x]; 
      for ($y = 0; $y < 5; $y++) { 
       echo $original_items[$k-1][$y]; 
      } 
      echo "<br/><br/>"; 
      } 
      ?> 

다음은 임의의 배열 색인을 반환하는 또 다른 해결책입니다.

$var = array( 
       array("a", "one"), 
       array("b", "two"), 
       array("c", "three"), 
       array("d", "four"), 
       array("e", "five"), 
       array("f", "six"), 
       array("g", "seven") 
      ); 
      // array_rand returns the INDEX to the randomly 
      // chosen value, use that to access the array. 
      $finalVar = $var[array_rand($var)]; 

      print_r($finalVar);