2014-09-25 2 views
0

У меня есть массив, содержащий два массива. Когда я пишу var_dump($array):Как я могу взять первый массив из массива

array(7) { 
    ["Article"]=> 
    array(1) { 
    [0]=> 
    string(8) "39-746У" 
    } 
    ["Visible"]=> 
    array(1) { 
    [0]=> 
    string(1) "1" 
    } 
} 
array(7) { 
    ["Article"]=> 
    array(1) { 
    [0]=> 
    string(6) "12-003" 
    } 
    ["Visible"]=> 
    array(1) { 
    [0]=> 
    string(1) "1" 
    } 
} 

Когда я пишу var_dump($array[0]) я получаю NULL. Я хочу, чтобы изменить видимое во втором массиве, но изменить в двух массивах

Реальный код:

$sql2="select tblCurrencies.name as name,Price,tblArticleInfo.Name as Name,ArticleID,CategoryID,Article,Visible from tblArticles,tblArticleInfo,tblCurrencies where tblArticleInfo.ArticleID=tblArticles.Id and tblArticles.Id='{$tovar_id}' and tblArticles.currencyID=tblCurrencies.id"; 
$Array2=query_result_as_rows($sql2,$conn); 
+0

У вас есть два различных типы массива PHP здесь, ассоциативный массив с парами ключ-значение и неассоциативный массив. Пожалуйста, прочитайте [документацию по массивам PHP] (http://php.net/manual/en/language.types.array.php) для получения информации о том, как получить доступ к каждому. –

+0

Вы также должны опубликовать код, который использовался, чтобы попытаться решить вашу проблему. –

ответ

0

Здесь у вас есть два разных типа массива: ассоциативный массив с парами ключ-значение и неассоциативный массив, индексированный по числу.

Ассоциативный массив:

$a_array = array(
    "Article" => "foo", 
    "Visible" => " bar", 
); 

Доступ к данным в ассоциативном массиве:

echo $a_array['Article']; 
// prints 'foo' 

Итерация через ассоциативный массив:

foreach ($a_array as $key => $value) { 
    echo "$key, $value; "; 
} 
// prints 'Article, foo; Visible, bar' 
//   

с числовым программным-индексированный массив:

$num_array = ('pip', 'pap', 'pop'); 

пункты доступа в числовом-индексированный массив:

echo $num_array[0] . ", " . $num_array[2]; 
// prints 'pip, pop' 

Итерация через массив:

foreach ($num_array as $num) { 
    echo "$num! "; 
} 
// prints "pip! pap! pop! " 

У вас есть ассоциативный массив с числовым индексированный массив внутри него:

$array = array(
    'Article' => array('39-746У'), 
    'Visible' => array('1') 
); 

var_dump от $array:

array(2) { 
    ["Article"]=> 
    array(1) { 
    [0]=> 
    string(8) "39-746У" 
    } 
    ["Visible"]=> 
    array(1) { 
    [0]=> 
    string(1) "1" 
    } 
} 

Для доступа к данным, необходимо объединить два метода:

echo $array['Article'][0]; 
// prints "39-746У" 

перебрать массивов:

foreach ($array as $key => $value) { // this is the outer associative array 
    echo "outer array key: $key...\n"; // $value is the inner array 
    foreach ($value as $v) { // $value is a numerically-indexed array 
     echo "inner array item: $v\n"; 
    } 
} 

Выход:

outer array key: Article 
inner array item: 39-746У 
outer array key: Visible 
inner array item: 1 
+0

Спасибо за подробности! –

0

Вот обходной путь:

$array = array(...); 
$array_keys = array_keys($array); 
$array_first_key = $array_keys[0]; 
var_dump($array[$array_first_key]); 

также:

var_dump(array_shift($array)); 

С php 5.4+

array_values($array)[0]; 
+0

Я все еще получаю значения от двух массивов –

+0

Пожалуйста, разместите реальный PHP-код, а не var_dumped. –

+0

Я только что написал –

Смежные вопросы