У меня есть файл .ini. Вот как выглядит файл .ini:

[something]
a = b
c = d
e = f
g = h

У меня есть следующий код PHP:

$ini = parse_ini_file("data.ini", true);
print_r($ini);

Результат:

Array
(
    [something] => Array
        (
            [a] => b
            [c] => d
            [e] => f
            [g] => h
        )

)

Есть ли способ «расшифровать» массив? Например, вывод такой:

a => b
c => d
e => f
g => h

Благодарность!

0
William 11 Авг 2014 в 00:01
$ini['something']? Похоже, parse_ini_file также дает вам разделы.
 – 
Balázs Édes
11 Авг 2014 в 00:03
Notice: Undefined index: something
 – 
William
11 Авг 2014 в 00:04
1
Массив «декодируется» из файла INI и должен использоваться как есть, как карта (возможно, с итерацией пар ключ/значение). $ini["a"] // => "b". См. учебник/справочник, например. oreilly.com/catalog/progphp/chapter/ch05.html, php.net/manual/en/language.types.array.php
 – 
user2864740
11 Авг 2014 в 00:09
Расшифруйте то, что только что было расшифровано, это интересный вопрос.
 – 
Havenard
11 Авг 2014 в 00:18

2 ответа

Лучший ответ

Как это :

$ini = parse_ini_file("data.ini", true);


foreach ($ini['something'] as $key => $value) {
    echo $key . " => ". $value."<br />";
}

ВЫХОД

a => b
c => d
e => f
g => h
4
mpgn 11 Авг 2014 в 00:17
Это работает, но я все еще вижу Array ( [something] => Array ( [a] => b [c] => d [e] => f [g] => h ) ). После этого я просто вижу a => b и т. д.
 – 
William
11 Авг 2014 в 00:12
1
@WilliamDavidEdwards, я не могу помочь, но я чувствую, что вы просто скопировали/вставили приведенный выше код, фактически понимая его. Сначала попытайтесь выяснить, что происходит, и тогда вы действительно сможете получить желаемый результат.
 – 
Robert Rossmann
11 Авг 2014 в 00:17
Потому что $ini — это массив, содержащий другие массивы. Попробуйте print_r($ini['something']) и вы поймете.
 – 
Havenard
11 Авг 2014 в 00:20
Спасибо! Это было именно то, что я искал :)
 – 
William
11 Авг 2014 в 00:24

То же, что и на странице php

<?php
$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');

reset($fruit);
while (list($key, $val) = each($fruit)) {
    echo "$key => $val\n";
}
?>
0
prashant thakre 11 Авг 2014 в 00:05
Я не понимаю, как это работает с файлами .ini.
 – 
William
11 Авг 2014 в 00:06
2
reset(), list() и each(). РВАТЬ. foreach.
 – 
Havenard
11 Авг 2014 в 00:21