Php 从内部数组中选取特定字段
叛变前: 打印(价值)= 叛徒Php 从内部数组中选取特定字段,php,arrays,Php,Arrays,叛变前: 打印(价值)= 叛徒 foreach ($toto as $data) { foreach($data as $key => $value) { $value = $value. ','; $tab = explode(",", $value); print_r($tab); } } 叛变后: 打印($tab)= 我的问题:他为什么不给我这样的数组: Array // ( // [0] =
foreach ($toto as $data)
{
foreach($data as $key => $value)
{
$value = $value. ',';
$tab = explode(",", $value);
print_r($tab);
}
}
叛变后:
打印($tab)=
我的问题:他为什么不给我这样的数组:
Array
// (
// [0] => Prise en charge
// [1] => Liste des d�p�ts
// [2] => etc
// [3] => etc
// [4] => etc
// [5] => etc
// )
以下是原始$toto
数据的示例:
var_dump($toto) = array(13) { [0]=> array(1) { ["name"]=> string(15) "Prise en charge" } [1]=> array(1) { ["name"]=> string(16) "Liste des dépôts" } [2]=> array(1) { ["name"]=> string(19) "Saisie par flashage" } [3]=> array(1) { ["name"]=> string(11) "Supervision" } [4]=> array(1) { ["name"]=> string(20) "Supervision des flux" } [5]=> array(1) { ["name"]=> string(28) "Suivi des flux informatiques" } [6]=> array(1) { ["name"]=> string(14) "Administration" } [7]=> array(1) { ["name"]=> string(17) "Contrôle des RADM" }
php版本:小于5.5似乎您只是想从每个内部数组中选择一个特定字段 您可以在一行中解决此问题,如下所示,而不必使用循环、逗号等:
print_r(array_column($toto, 'name'));
这将输出
Array
(
[0] => Prise en charge
[1] => Liste des dépôts
[2] => Saisie par flashage
[3] => Supervision
[4] => Supervision des flux
[5] => Suivi des flux informatiques
[6] => Administration
[7] => Contrôle des RADM
等等
演示:
文件:
其他: 如果您没有可用的array_column函数,那么解决它仍然相当简单,如下所示:
$output = array();
foreach ($toto as $data)
{
$output[] = $data["name"];
}
print_r($output);
因为你分解了每个部分,而不是全部。等到你把逗号加到所有的东西上,然后把整行都分解掉我不明白,我必须在$data中加上“,”这个词,你把它加到了$value中。不是美元数据。然后你把$value分解了。好吧,把它加到$value上。但是在循环结束之前不要爆炸。除非我误解了。$toto的内容是什么?$ TOTO)=数组(13){ [名称] ] =“字符串”(15)“数组”(1){ [ [姓名] ] >字符串(16)“Listes des d p p of ts”}[2 ]=>数组(1){[[名称] ] =字符串(19)“SasiePar闪存”}[Stry]=>数组(1){[[名称] ] =字符串(“”)“监督”}[Al]=数组(100%){[ [姓名] ]不清楚你从哪里开始,确切地说,VARYDUMP(100%)]=>string(20)“流量管理”}[5]=>array(1){[“名称”]=>string(28)“流量管理”}[6]=>array(1){[“名称”]=>string(14)“管理”}[7]=>array(1){[“名称”]=>string(17)“流量管理”}我在$toto中检索我的SQL查询,我想隔离文本,这就是为什么我在函数array_column()中使用2 foreach是PHP 5.5吗?因为当我使用ITYES时,我有一个致命错误,那就是它被引入的时候。你在运行一个旧版本吗?如果是这样的话,你应该考虑升级,因为你没有收到关键的安全补丁和其他更新。参见.P.在你的问题中你没有指定你的PHP版本,所以我假设了。(合理地说,我会说)你有一个最新的版本。我现在明白了,很抱歉我以前应该这么说。我不能升级php 7或5.5,我在我的公司没有权利:/I我会更改标题,抱歉,你应该警告你的公司他们正在危及他们的安全,以及他们的数据安全(或其客户的数据,如果应用程序持有)。坦率地说,运行不受支持的版本是不负责任的。在大多数情况下,升级并没有那么难,当然影响是可以测试的。即使这不是你的责任,你也应该让他们知道你认为这是一种不好的做法。无论如何,我在回答中添加了一个简单的替代解决方案作为额外的部分。
Array
(
[0] => Prise en charge
[1] => Liste des dépôts
[2] => Saisie par flashage
[3] => Supervision
[4] => Supervision des flux
[5] => Suivi des flux informatiques
[6] => Administration
[7] => Contrôle des RADM
$output = array();
foreach ($toto as $data)
{
$output[] = $data["name"];
}
print_r($output);