У меня есть текстовый файл, который выглядит так:
Disable: 0
Lock: 0
Default: Value
ThisIsAnOption: foo
HereIsAnAnother: bar
AndAgain: foobar
И это в счет большего ...
Итак, теперь я делаю это, чтобы поместить содержимое в массив:
$file = './somefile.txt';
$array = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
С этим результатом:
Array ( [0] => Disable: 0 [1] => Lock: 0 [2] => Default: Value [3] => ThisIsAnOption: foo [4] => HereIsAnAnother: bar [5] => AndAgain: foobar )
Я хочу сохранить в массиве такие значения, как нули, «Value», «foo», «bar» и «foobar». Поэтому мне нужно удалить (с пробелом) «Отключить:», «Заблокировать:», «...»
РЕДАКТИРОВАТЬ: вот массив, который мне нужен в конце .
Array ( [0] => 0 [1] => 0 [2] => Value [3] => foo [4] => bar [5] => foobar )
Как лучше всего это сделать? Заранее спасибо за вашу помощь!
4 ответа
Используйте substr()
+ strpos()
:
<?php
// header('Content-Type: text/plain; charset=utf-8');
$array = [
'Disable: 0',
'Lock: 0',
'Default: Value',
'ThisIsAnOption: foo',
'HereIsAnAnother: bar',
'AndAgain: foobar'
];
foreach($array as &$value){
$value = substr($value, strpos($value, ':') + 2);
}
print_r($array);
?>
Результат:
Array
(
[0] => 0
[1] => 0
[2] => Value
[3] => foo
[4] => bar
[5] => foobar
)
Попробуй это:
for($i = 0; $i < count($array); $i++)
{
$temp = explode(': ', $array[$i]);
$array[$i] = $temp[1];
}
Это должно в основном разделить строки, где есть:, за которым следует пробел, таким образом удаляя также пробел.
Я добавил массив $ для этого тестового примера. Вы будете использовать свой массив, который был прочитан из файла.
$array = Array (
0 => "Disable: 0",
1 => "Lock: 0",
2 => "Default: Value",
3 => "ThisIsAnOption: foo",
4 => "HereIsAnAnother: bar",
5 => "AndAgain: foobar"
) ;
$newArray = array();
foreach ($array as $line) {
if (strpos($line, ":")) {
$lineArray = explode(":", $line);
$newArray[trim($lineArray[0])] = trim($lineArray[1]);
}
}
Это дает такой результат:
Disable 0
Lock 0
Default Value
ThisIsAnOption foo
HereIsAnAnother bar
AndAgain foobar
$newArray
К сожалению, впоследствии вы изменили требования.
Попробуй это
<?php
$array = [
'Disable: 0',
'Lock: 0',
'Default: Value',
'ThisIsAnOption: foo',
'HereIsAnAnother: bar',
'AndAgain: foobar'
];
$arr_output = array();
foreach($array as $val)
{
$arr_temp = explode(":", $val);
if(isset($arr_temp[1]))
{
$arr_output[] = trim($arr_temp[1]);
}
}
echo implode(",", $arr_output);
?>
ВЫХОД:
0,0,Value,foo,bar,foobar
Похожие вопросы
Новые вопросы
php
PHP — это широко используемый язык сценариев общего назначения с открытым исходным кодом, мультипарадигмальный, динамически типизированный и интерпретируемый, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.