2015-03-26 5 views
0

Как я могу использовать ассоциативный массив для отображения этого типа данных:доступ к содержимому массива

array(20) { 
    [0]=> 
    array(7) { 
    ["url"]=> 
    string(89) "URL Here" 
    ["title"]=> 
    string(42) "Title Here" 
    ["author_url"]=> 
    string(51) "Author Link Here" 
    ["author"]=> 
    string(14) "Author" 
    ["published"]=> 
    string(14) "Date" 
    ["img_url"]=> 
    string(73) "Image Link Here" 
    ["teaser"]=> 
    string(352) "Lorem Ipsum" 
    } 

} 

Я знаю, что с помощью foreach($string as $key=>value) это первый шаг, но я хотел бы знать, как использовать его, чтобы повторить значения, затем поставить их в HTML-элемента, так что вышеупомянутые данные должны отображать содержимое:

URL:URL Here TITLE: Title Here AUTHOR_URL: Author Link Here AUTHOR: Author PUBLISHED: Date TEASER: Lorem Ipsum

заранее спасибо за любые предложения.

+0

try $ string [0] ['url'] –

+0

Ну, почему бы вам не развести два 'foreach'? – D4V1D

+0

hello @Manadh, это будет работать, если предположить, что существует только один массив, как насчет нескольких? –

ответ

2

гнездо второй foreach в первый foreach:

echo '<p>'; 
foreach($array as $value) 
{ 
    foreach($value as $innerKey => $innerValue) 
    { 
     echo strtoupper($innerKey).': '.$innerValue; 
     echo '<br/>'; 
    } 
} 
echo '</p>'; 
+0

Спасибо, это то, что мне нужно: D –

+0

Рад, что это сработало. Пожалуйста, подумайте о том, чтобы принять этот ответ как наиболее подходящий для вашего вопроса и его также повысить :) – D4V1D

+0

У меня есть одна вещь, чтобы добавить хотя, что, если я хочу получить доступ к определенному элементу, например, к URL-адресу или автору? –

2

у вас есть вложенное массив, вам потребуется 2 Еогеасп:

foreach ($array as $values) { 
    foreach ($values as $key => $v) { 
     printf("%s: %s\n", $key, $v); 
    } 
} 
0

Простое решение, никоим образом не справиться с форматированием:

print_r ($string);

Более гибкое решение с использованием рекурсивной функции форматирования:

function custom_print_r($expression, $indent = 1) { 
    $buffer = ''; 
    $str_indent = str_pad('', $indent * 2, ' '); 
    $arr_format = "[\n%s\n" . str_pad('', ($indent - 1) * 2 , ' ') . "]"; 
    $row_format = "$str_indent%s => %s,\n"; 
    $val_format = "%s"; 

    if (is_array($expression)) { 
     $subbuffer = ''; 
     foreach($expression as $key => $value) { 
      $subbuffer .= sprintf($row_format, $key, custom_print_r($value, $indent + 1)); 
     } 
     $buffer .= sprintf($arr_format, $subbuffer); 
    } elseif (is_object($expression)) { 
     $subbuffer = ''; 
     foreach(get_object_vars($expression) as $key => $value) { 
      $subbuffer .= sprintf($row_format, $key, custom_print_r($value, $indent + 1)); 
     } 
     $buffer .= sprintf($arr_format, $subbuffer); 
    } else { 
     $buffer .= sprintf($val_format, $expression); 
    } 
    return $buffer; 
} 
$arr = [ 
    [ 
    "url" =>"URL Here", 
    "title" => "Title Here", 
    "author_url" => "Author Link Here", 
    "author" => "Author", 
    "published" => "Date", 
    "img_url" => "Image Link Here", 
    "teaser" => "Lorem Ipsum", 
    ] 
]; 

echo custom_print_r($arr); 

/** Will produce : 
[ 
    0 => [ 
    url => URL Here, 
    title => Title Here, 
    author_url => Author Link Here, 
    author => Author, 
    published => Date, 
    img_url => Image Link Here, 
    teaser => Lorem Ipsum, 

    ], 

] 
**/ 
Смежные вопросы