为了账号安全,请及时绑定邮箱和手机立即绑定

PHP-获取在多个索引中具有值的键

PHP-获取在多个索引中具有值的键

PHP
绝地无双 2023-10-15 15:51:17
您可以像这样使用自定义查询<?php$authorID = get_the_author_meta('ID');$args = array(    'post_type' => 'product',    'post_status' => 'publish'    'posts_per_page' => 12,    'product_cat' => 'pants'    'author'    => $authorID);$loop = new WP_Query( $args );?>        <div class="author_products">    <?php if ( $loop->have_posts() ) { ?>        <ul class="author_pubproducts">        <?php while ( $loop->have_posts() ) : $loop->the_post();            woocommerce_get_template_part( 'content', 'product' );        endwhile; ?>        </ul>        <?php        } else {            echo __( 'No products found', 'textdomain' );        }        wp_reset_postdata();    ?>希望能成功
查看完整描述

2 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

这就是我要做的:


// I take first element of array as a source for indexes

foreach ($myArray[0] as $index => $item) {

    // next I extract all elements from all subarrays under current `$index`

    $values = array_column($myArray, $index);

    // then I filter values to remove nulls. 

    // This also removes 0, empty arrays, false, 

    // so maybe you should change filter process

    $values_filtered = array_filter($values);

    // if number of filtered items is same as in original array - no nulls found

    if (count($values_filtered) === count($values)) {

        echo $index;

        // optionally

        // break; 

    }

}


查看完整回答
反对 回复 2023-10-15
?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

尽管有一个公认的答案,但我想我会分享一种使用 Laravel 集合来做到这一点的方法。


 $uniqueKeysWithValues = collect($myArray)->map(function($item){

    return array_keys( collect($item)->filter()->toArray() ); //filter will remove all null

 })->flatten()->unique();

这种方法将为您提供所有包含值的键,即使两个键中都有值。


查看完整回答
反对 回复 2023-10-15
  • 2 回答
  • 0 关注
  • 87 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信