在php中将字符串转换为数组

时间:2015-02-20 16:10:44

标签: php arrays string

我确信这已经得到了解答,但我不知道如何研究它。这是我的字符串

[value1, value2, value3, ..., valueN]

我想知道是否存在将其转换为简单数组的本机函数

array('value1', 'value2', 'value3', ..., 'valueN');

很明显,我想知道是否有已经写过的东西,也就是除了strpos('[')implode(',')之外的其他方法。


修改

对不起,我没有太多关注这个问题,因为我正在这个项目上不停地工作,要求我提出这个问题。关于最后一条评论,我想在此补充一点,这不是问题,而是如何计划。我决定使数组看起来与JSON数组完全一样,因为我想要一个简单的函数来撤消它。这是我的INI文件。

; Default Pages
user = all
wordpress = all    
home/welcome = visitor
home/customer = visitor
home/new = visitor
home/signup = visitor

; User
user/panel = '["user", "worker", "customer", "company", "staff", "ruler", "gifter", "support", "salesman", "scorer", "recorder", "reporter", "deliverer", "manager", "admin"]'
user/profile = user
user/password = user
user/support = user

; Reporter
user/report = reporter

; User/Customer
user/customer/voucher = customer
user/customer/history = customer
user/customer/ticket = customer
user/customer/profiling = customer

; User/Staff
user/staff/customer = recorder

; User/Manager
user/staff/score = scorer
user/staff/voucher = deliverer

user/manager/shop = '["salesman", "manager"]'

user/manager/staff = manager
user/manager/ticket = manager

2 个答案:

答案 0 :(得分:1)

你在评论中说,字符串来自parse_ini_file函数调用。

第一个字符串不是parse_ini_file调用返回的字符串,因此必须有其他的东西才能获得该输入,而这根本不是必需的。

要获得您在问题中提到的内容,您应该执行以下操作:

$ini_array = parse_ini_file($ini_path); //This is an associative array
//If necessary, get only the key=>value pairs you need
//otherwise, just keep going
$ini_values = array_values($ini_array); //this is now a 0-based array

$ini_values现在完全包含您的要求。

答案 1 :(得分:0)

用于简单事物的implode()或用于正则表达式的preg_split()。

http://php.net/function.implode

http://php.net/manual/en/function.preg-split.php

我曾经厌倦了学习正则表达式,但这个网站非常有帮助,它直观地显示了你的字符串将做什么,并有cheatsheet和例子。

https://www.debuggex.com/