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);